<pre name="code" class="csharp">public bool Deleteall()
{
var records = GetAllRecords();
foreach (var item in records)
{
_quereyRecordRepository.DeleteEntity(item);
}
return false;
}
public void DeleteEntity(T entity)
{
_quereyRecordRepository.Remove(entity);
_quereyRecordRepository.SaveChanges();
}
问题出在循环时的
_context.SaveChanges()
方法上。
循环时 records还在查询中,调用SaveChanges(); 便会抛异常:不允许启动新事务,因为其他线程正在该会话中运行。
改动
public bool Deleteall()
{
var records = GetAllRecords();
foreach (var item in records)
{
_quereyRecordRepository.DeleteEntity(item);
}
_quereyRecordRepository.SaveChanges();
return flase;
}
public void DeleteEntity(T entity)
{
_quereyRecordRepository.Remove(entity);
}