【问题标题】:Entity Framework EntityState and SaveChanges behaviour without changes实体框架 EntityState 和 SaveChanges 行为没有变化
【发布时间】:2015-09-30 04:41:26
【问题描述】:

关于实体框架状态,特别是在使用 SaveChanges 调用更新记录时,我知道它只会更新修改了 EntityState 的记录(暂时忽略添加/删除)

我的问题是如何跟踪它以及它如何处理值不变的分配?

我正在努力解决

if (value1.Text != table.value1) { table.value1 = value1.Text; }

有必要停止多余的更新,或者如果我可以逃脱:

table.value1 = value1.Text;

或者这会将状态设置为记录上的“已修改”标志,即使值相同?

谢谢!

【问题讨论】:

    标签: c# entity-framework


    【解决方案1】:

    https://msdn.microsoft.com/en-us/data/jj556205

    在使用大多数 POCO 实体时,确定实体如何拥有 已更改(因此需要将哪些更新发送到数据库) 由检测更改算法处理。检测更改的工作方式 检测当前属性值之间的差异 实体和存储在快照中的原始属性值 查询或附加实体的时间。

    Entity Framework 在调用 DbContext.SaveChanges 时会自动运行上述Detect Changes。而EF实际上是通过比较当前值和原始值来判断变化的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-05
      • 1970-01-01
      • 1970-01-01
      • 2023-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多