EF6太多导航属性限制

时间:2018-01-23 11:23:44

标签: asp.net-mvc-5 entity-framework-6 ef-code-first asp.net-identity-2

我首先在我的MVC项目中使用E.F 6.2代码并配置项目以使用Asp.Net Identity 2进行记帐。我有一个“BaseData”实体,它包含我的所有基本数据。这是班级主体:

家长实体:

public class BaseData
{
   public int Id { get; set; }

   public string Caption { get; set; }

   public virtual ICollection<A> Children1 { get; set; }

   public virtual ICollection<B> Children2 { get; set; }

   .

   .

   .

   public virtual ICollection<ZZZ> ChildrenN { get; set; }
}

所以其他实体必须与之相关。在我的例子中,每个子实体与“BaseData”父实体有数百个关系,我有数百个子实体。所以父母实体有成千上万的关系。这是子实体的伪代码:

儿童实体

public class A
{
   public int Id { get; set; }

   public int BaseData1Id { get; set; }

   public BaseData BaseData1 { get; set; }

   public int BaseData2Id { get; set; }

   public BaseData BaseData2 { get; set; }

   .
   .
   .

   public int BaseData300Id { get; set; }

   public BaseData BaseData300 { get; set; }
}

.
.
.
.

public class ZZZ
{
   public int Id { get; set; }

   public int BaseData1Id { get; set; }

   public BaseData BaseData1 { get; set; }

   public int BaseData2Id { get; set; }

   public BaseData BaseData2 { get; set; }

   .
   .
   .

   public int BaseData300Id { get; set; }

   public BaseData BaseData300 { get; set; }
}

我正在使用E.F流畅的API来配置我的实体之间的关系。问题是,当我运行项目并想要获取一些数据,如用户帐户时,我得到“StackOverFlow”异常!!

为解决这个问题,我尝试逐个删除子实体,然后重新创建数据库。我发现当孩子减少时,问题就解决了,我没有得到例外,但我不知道为什么!!

E.F的导航属性是否有限制? 是否有解决方案来增加堆栈容量以防止“StackOverFlow”异常?

0 个答案:

没有答案