【发布时间】:2017-12-11 21:38:11
【问题描述】:
我正在制作一个 EF 代码优先的 MVC 模型来存储文章。
每篇文章可以有多个页面,所以我将键设置为 ID 加页码的组合键。
我还希望文章有子文章,所以我希望文章使用外键自引用。
由于键是复合键,我正在努力解决自引用问题。当我搭建模型并尝试使用控件时,我得到“System.StackOverflowException”
public class Article
{
[Key, Column(Order = 0)]
public int ArticleID { get; set; }
[Key, Column(Order = 1)]
public int ArticlePageNo { get; set; }
public string ArticleTitle { get; set; }
public string ArticleBody { get; set; }
[ForeignKey("ArticleID, ArticlePageNo")]
public Article ArticleParent { get; set; }
}
【问题讨论】:
-
为什么有一个引用自身的复合键?你能把一篇文章和它的页面分开存储吗?还是文章本身也需要引用?
-
我希望文章具有父文章和子文章,因此需要自引用。我还想要使用复合键的分页文章。这就是为什么我需要一个引用自身的复合键。
-
如果不能以这种方式工作,我会考虑单独存储页面。
标签: c# asp.net-mvc code-first