如何 "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;
}