【问题标题】:Why some properties value was changed entity state is `UnChanged` in EF Core 2.2.6为什么某些属性值已更改实体状态在 EF Core 2.2.6 中为“UnChanged”
【发布时间】:2019-09-23 07:00:56
【问题描述】:

我使用的是 EF Core 2.2.6。我遇到一个奇怪的。我从数据库中获取了一个实体,然后我更改了一个属性值。我查看了 ChangeTraker,我看到实体状态是 UnChanged。但实体属性值已更改。 stange 的大部分内容是 EF 创建update query。 Everythink工作正常。我想了解它为什么会这样工作。我的例子如下

 var person = _unitOfWork.PersonRepository.Get(x => x.Id == 20);
 person.RegUserId=5;
 _unitOfWork.Commit();

public TEntity Get(Expression<Func<TEntity, bool>> predicate)
{
  return _dbset.FirstOrDefault(predicate);
}

【问题讨论】:

  • 您能给我们展示一下 DbContext 实例化代码吗?还有 PersonRepository ?
  • @Selmir DbContext 中没有奇怪的代码。我更新了我的问题。我在“PersonRepository”中展示了 get 方法

标签: c# entity-framework-core


【解决方案1】:

EntityState 仅在调用 ChangeTracker.DetectChanges() 时重新计算,通常在 SaveChanges() 期间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    • 2018-04-03
    • 2022-11-09
    • 1970-01-01
    • 2020-01-24
    • 1970-01-01
    相关资源
    最近更新 更多