gpt4 book ai didi

c# - 一对一的自关系和 Entity Framework

转载 作者:行者123 更新时间:2023-11-30 15:44:46 25 4
gpt4 key购买 nike

我想要一个可以有 child (一个或零个)的实体。这个 child 与 parent 的类型相同。我不确定如何设置 Entity Framework ,因为我想为每个实体设置两个导航属性。一种用于导航至子级,另一种用于导航至父级。基本上它与双向链表的结构完全相同。

我觉得这个表结构应该够了:

 int | id       | PK
int | id_next | FK
text | data

但是如何为下一个/上一个项目创建导航属性?我只能为下一项创建导航属性。

感谢您的帮助。

最佳答案

你不能。这里的问题是一对一关系有一个非常具体的要求——FK 值在整个表中必须是唯一的。一旦不强制执行唯一性,您可以添加第二个实体指向同一个父实体,并且您拥有一对多关系。

要像您在示例中描述的那样在自引用关系中强制执行此操作,您将在 id_next 上放置一个唯一索引,它将在 SQL Server 中工作。问题是 Entity Framework 不支持唯一键。由于该 Entity Framework 只能在两个不同的实体类型之间建立一对一的关系,其中依赖实体类型中的 FK 也是其 PK(如何强制 FK 唯一的唯一方法)= 两个实体具有相同的PK值。这不适用于自引用关系,因为一个表中不能有两个相同的 PK 值。

关于c# - 一对一的自关系和 Entity Framework ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5848457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com