如何 "clear" 数据上下文
How to "clear" data context
我的一些脚本从外部资源更新本地数据,获取部分数据,更新然后获取下一部分数据...我的更新代码是:
public void UpdateDrivers(List<Domain.POCO.Vistracks.VistrackDriverInfoDomain> list)
{
foreach (var model in list)
{
var driver = (from i in _db.Drivers
where i.AspNetUser.UserName.Equals(model.Email, StringComparison.InvariantCultureIgnoreCase)
select i).FirstOrDefault();
driver = mapper.Map<VistrackDriverInfoDomain, Infrastructure.Asset.Driver>(model, driver);
driver.IsVistracksAdded = true;
driver.VistracksDateSync = DateTime.Now;
}
_db.SaveChanges();
}
好的,如果数据有效,它就可以工作。有时数据可能无效并抛出异常。我需要传递这部分数据并尝试下一个。但是当我尝试使用下一部分数据(有效数据)时,它再次抛出相同的异常。
我尝试通过以下方式清除未更改的记录:
_db.ChangeTracker.Entries().Where(x => x.State != EntityState.Unchanged).ToList().Clear();
但这并没有帮助。怎么做?
我是按照以下方式制作的:
var changes = _db.ChangeTracker.Entries().Where(x => x.State != EntityState.Unchanged).ToList();
foreach (var entity in changes)
{
_db.Entry(entity.Entity).State = EntityState.Detached;
}
我的一些脚本从外部资源更新本地数据,获取部分数据,更新然后获取下一部分数据...我的更新代码是:
public void UpdateDrivers(List<Domain.POCO.Vistracks.VistrackDriverInfoDomain> list)
{
foreach (var model in list)
{
var driver = (from i in _db.Drivers
where i.AspNetUser.UserName.Equals(model.Email, StringComparison.InvariantCultureIgnoreCase)
select i).FirstOrDefault();
driver = mapper.Map<VistrackDriverInfoDomain, Infrastructure.Asset.Driver>(model, driver);
driver.IsVistracksAdded = true;
driver.VistracksDateSync = DateTime.Now;
}
_db.SaveChanges();
}
好的,如果数据有效,它就可以工作。有时数据可能无效并抛出异常。我需要传递这部分数据并尝试下一个。但是当我尝试使用下一部分数据(有效数据)时,它再次抛出相同的异常。 我尝试通过以下方式清除未更改的记录:
_db.ChangeTracker.Entries().Where(x => x.State != EntityState.Unchanged).ToList().Clear();
但这并没有帮助。怎么做?
我是按照以下方式制作的:
var changes = _db.ChangeTracker.Entries().Where(x => x.State != EntityState.Unchanged).ToList();
foreach (var entity in changes)
{
_db.Entry(entity.Entity).State = EntityState.Detached;
}