2011-07-27 34 views
0

我正在尝试使用实体框架来提出一个questionairre。我根本无法得到想要加载的问题模型 - 每个模型都会因为堆栈溢出而失败。实体框架 - 在System.Data.Entity.dll中发生未处理的类型为“System.StackOverflowException”的异常 - 为什么?

我在其他EDMX文件中有其他模型,到目前为止他们工作得很好。

QuestionEntities qc = new QuestionEntities(); System.Data.Objects.ObjectSet<FormView> qvs = qc.FormViews;

溢出发生在第二行。

据我所知,他们都设置为延迟加载,所以它不应该试图加载整个数据库。以防万一,我试图删除所有的递归导航属性,但它仍然失败。

唯一相似的条目,我发现是C# - Entity Framework - An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll

不幸的是,一个只有通过反复重启EDMX(我曾尝试为好)解决。

任何帮助,将不胜感激,谢谢

回答

2

请看看你生成的代码,你可能有一些递归属性定义这可能会导致问题。堆栈溢出只发生在以无限循环结束的递归调用中。

如果您发布您的模型和生成的代码,那么将很容易找到问题的原因。

当有搜索中递归包含的表时,我们确实也有同样的问题,例如考虑树状结构如文件系统,其中目录包含儿童是目录,这样的导航属性无法包括并导致堆栈溢出。

+0

正如我所说,我没有模型中的任何递归元素。我会在我原来的问题上发布它一样。 –

+0

检查递归导航属性,就像引用与外键相同的类。 –

+0

我已经删除了所有关系和导航属性,以确保这不是问题。 –

相关问题