|
|
1
2
除非你能举出一个真正发生这种事的例子,否则在你问题的第一部分,我相信你错了。EF不会为已加载的代理创建新实例。EF和其他ORM工具一样,使用IdentityMap模式来处理每个加载的对象只存在于单个实例中。 问题的第二部分比较困难,因为它与在数据库上执行的查询有关。我没有用EF检查这一点,但是在linqtosql中,根据加载了main对象的导航属性的数量,查询是不同的。如果您只加载了一个导航属性,那么它通常会执行简单的join,这样记录就会被复制。但在多个导航属性的情况下,查询被划分为多个查询,从不同的表加载数据。所以这个行为在默认情况下被优化了。 |