实体框架:是否有一种方法可以比较 EntityObject 的相等值?

Pet*_*rdk 5 entity-framework equality

是否有一种简单的方法来比较两个 EntityObject 的值是否相等。我只是想检查所有数据库值是否相同,所以我不在乎 EntityKey 是否不同。

这可能是内置的吗?或者我应该编写自己的方法。

我想 Equals() 在这里不能按我想要的方式工作?

Dav*_*sky 5

Equals() 检查引用相等性,所以它对你没有帮助。

看看这个问题:比较两个实体框架实体的最佳方法是什么?

2014 年更新:
根据 EF 当前状态,更完整的答案是您可以重写代码优先模型中的 Equality 运算符以提供值相等性检查。

  • @TheRedPea - Equals() 的默认实现检查引用相等:https://msdn.microsoft.com/en-us/library/bsc2ak47(v=vs.110).aspx。如果您不重写 Equals(),则它等效于 ReferenceEquals()。但是,您可以重写 Equals() 并提供可以检查值相等性的自定义实现。您需要小心记录此行为,因为这可能与 API 使用者的期望相反。 (2认同)