【问题标题】:How to "clear" data context如何“清除”数据上下文
【发布时间】:2018-02-22 18:05:25
【问题描述】:

我的一些脚本从外部资源更新本地数据,获取部分数据,更新再获取下一部分数据……我的更新代码是:

    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();

但这无济于事。怎么做?

【问题讨论】:

    标签: entity-framework entity-framework-6 datacontext


    【解决方案1】:

    我是这样弄的:

    var changes = _db.ChangeTracker.Entries().Where(x => x.State != EntityState.Unchanged).ToList();
    foreach (var entity in changes)
    {
         _db.Entry(entity.Entity).State = EntityState.Detached;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-31
      • 2021-02-16
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      相关资源
      最近更新 更多