【发布时间】:2017-08-31 01:25:51
【问题描述】:
有3张桌子:
- 父母(父母)
- 儿童(儿童)
- 一个孩子到另一个孩子的转变(跳跃)
例如想象书。是书本身,就会表亲。这本书有页,孩子们。页面上有脚注——指向其他页面的链接,它会跳转。
对于儿童,我使用复合键 (new {ChildId, ParentId}),因为通过类比书籍,可以在各种书籍中找到第 1 页。在现实世界中字符串的ID,它包含一个代码。
表格跳转。它描述了一个脚注。将要转换的页面 ID (SourceChildId) 和将要转换的页面 ID (TargetChildId)。由于转换发生在同一本书(父)中,该书使用一个字段作为两个键 - ParentId。
我认为这个结构是合乎逻辑的,直到我尝试 Udpdate-Database 命令,我得到一个异常:“检测到具有引用完整性约束的循环关系。” 这枚戒指参考了我最喜欢的桌 Jumps...我真的很喜欢他们的 lokalitetu,但是....
请帮助我为此任务模拟 CodeFirst 的模型数据(类似于书籍、页面和脚注页面)。附上测试项目。
Visual Studio 项目。 〜10mb。谷歌驱动器:
https://drive.google.com/open?id=0B2Je5INk3Cy2bXdfWHZSTm1lUms
最好的祝愿, 谢尔盖
【问题讨论】:
-
我认为这个问题导致 Jump.ParentId 和 Jump.Source.ParentId 可以(理论上)不一样...可以通过 flyent API 设置吗?
标签: c# postgresql entity-framework ef-code-first entity-framework-migrations