【问题标题】:Why DbSet.Local performs Detect Changes automatically?为什么 DbSet.Local 会自动执行检测更改?
【发布时间】:2016-09-15 00:50:54
【问题描述】:

在我的最新问题中,有人指出 DbSet.Local 会自动执行检测更改 看问题:Why is referencing DbSet.Local slow in a loop?

在 answers-cmets 中,此链接发布在 https://msdn.microsoft.com/en-us/data/jj556205.aspx 中,其中列出了属性

默认情况下,实体框架会自动执行检测更改 当调用以下方法时:

  • DbSet.Find
  • DbSet.Local
  • DbSet.Remove
  • DbSet.Add
  • DbSet.Attach
  • DbContext.SaveChanges
  • DbContext.GetValidationErrors
  • DbContext.Entry
  • DbChangeTracker.Entries

列表中有两个属性我不确定为什么需要检测更改:find 和 local 我想可能需要它,因为可以有更多的 DbSet 实例,否则更改不会同步。

在 find 和 local 时检测变化的目的是什么?

【问题讨论】:

标签: c# entity-framework


【解决方案1】:

从发布在 cmets 中的 link 中,我找到了答案。 如果 DbSet.Local 或 DbSet.Find 未检测到更改,您将不会获得处于已添加状态(尚未提交到 DB)的实体

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2017-12-15
    • 2021-08-15
    相关资源
    最近更新 更多