升级到EF 6.0.2后,查询开始获取StackOverflowException

时间:2014-01-29 18:40:34

标签: entity-framework include left-join stack-overflow

当我从v 5升级到v 6.0.2时,我的一个查询开始给我一个堆栈溢出。

2 个答案:

答案 0 :(得分:0)

最后,我用左连接替换了所有的Include子句(即使用DefaultIfEmpty子句连接),并修复了堆栈溢出问题。但是,我不相信我的模型中有任何递归。该查询确实适用于实体框架的第5版。

答案 1 :(得分:0)

这是因为在EF6中,UseDatabaseNullSematics默认设置为false,这会导致创建更大的查询。这是在https://entityframework.codeplex.com/workitem/1579跟踪的。只需将此标志翻转到true,您就可以获得EF5中的相同查询,但是查询可能有时会产生意外(从C#程序员角度来看)结果。 EF6.1正在解决这些问题,即使UseDatabaseNullSemantics设置为true,查询也应该更小。有关详细信息,请参阅: