我假设对于给定的ObjectContext,如果我执行查询并检索到唯一对象(即使用主键),则使用相同ObjectContext的第二次查询将为我提供该对象的完全相同的实例。

但是,不一定是这种情况。

有人可以阐明这一点吗?

谢谢!

这是一些代码:
(在这种情况下,我有一个复合键)

var x = context.MyEntity.FirstOrDefault(e => e.Key1 == 1 && e.Key2 == 5);
var y = context.MyEntity.FirstOrDefault(e => e.Key1 == 1 && e.Key2 == 5);
var isSame = x == y;


更新

我相信这个问题的答案在于实体的MergeOption。我注意到那些不起作用的设置为NoTracking,这与默认的AppendOnly选项相对。这可能是我遇到的问题的根源。

最佳答案

问题是由于不正确的MergeOption设置。在这种情况下,它被错误地设置为NoTracking。

关于c# - Entity Framework 检索不同的实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8717638/

10-12 03:58