Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework EF 5-有时返回动态代理,即使ProxyCreationEnabled=false;_Entity Framework - Fatal编程技术网

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

Entity framework EF 5-有时返回动态代理,即使ProxyCreationEnabled=false;,entity-framework,Entity Framework,我一直在观察,有时我的查询在指定后返回代理,有时则不返回 this.Configuration.ProxyCreationEnabled=false 我完全不知所措。有人知道为什么有时会发生这种情况吗?是虫子吗 我有这样的代码: this.Configuration.ProxyCreationEnabled = false; this.Configuration.LazyLoadingEnabled = false; var result = qu

我一直在观察,有时我的查询在指定后返回代理,有时则不返回
this.Configuration.ProxyCreationEnabled=false

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

我有这样的代码:

        this.Configuration.ProxyCreationEnabled = false;
        this.Configuration.LazyLoadingEnabled = false;
        var result = query();
其中查询是“SingleOrDefault”。这返回了一个poco刚刚好


然后我把它改为返回一个列表,去掉了“SingleOrDefault”并使用了“Where”子句,现在它返回一个代理列表,而不是poco。

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

基本上,如果对象作为代理缓存在db上下文中,那么不管配置是否指示不使用代理,它都将作为代理返回


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

如何关闭代理创建?this.configuration.ProxyCreationEnabled=false;把它放在上下文的构造函数中。很好地抓住了重用对象上下文,将其作为动态对象从缓存中拉出来。