EF 5 - 即使ProxyCreationEnabled = false,有时也返回动态代理;

时间:2013-11-17 23:43:37

标签: entity-framework

我一直在观察,有时我的查询会返回代理,有时它们会在我指定之后返回代理 this.Configuration.ProxyCreationEnabled = false;

我完全不知所措。有人知道为什么有时会发生这种情况吗?这是一个错误吗?

我的代码确实如此:

        this.Configuration.ProxyCreationEnabled = false;
        this.Configuration.LazyLoadingEnabled = false;
        var result = query();

查询是“SingleOrDefault”。这让poco很好。

然后我通过删除“SingleOrDefault”并使用“Where”子句来更改它以返回列表 - 现在它返回代理列表而不是poco。

1 个答案:

答案 0 :(得分:2)

我想我终于找到了这个烦人问题的答案。

EF5 DBContext configuration ignored

基本上,如果对象作为代理在db上下文中缓存,则无论配置是否使用代理,它都将作为代理返回。

解决方案是创建一个新的上下文,然后进行查询,或者始终关闭代理创建,而不是在运行时动态更改配置。