gpt4 book ai didi

.net - 如何定义构成(上司、下属关系)

转载 作者:行者123 更新时间:2023-12-03 03:17:52 25 4
gpt4 key购买 nike

我想定义循环组合关系。如果老板从系统中删除,他的所有下属都会通过级联更新删除。

我的意思是:

我应该如何在代码中声明它?

public class Person{
public int Id {get;set;}
public virtual Person Person {get;set}
}

这在 Entity Framework 中可能吗?

最佳答案

据我所知,它没有在任何地方记录,但是 Entity Framework 仅创建/更新/删除它已加载的实体

因此,如果您加载一个 Person 并将其删除,并且该 Person 有下属,您将收到外键冲突错误。 EF 不会自动更新这些子记录(将其 FK 设置为 null)。

但是,如果您加载 Person 及其下属并删除 Person,EF 将取消每个子级的外键。

为了使加载更容易一些,您应该稍微修改 Person 类:

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

public virtual Person Boss { get; set; }

[InverseProperty("Boss")] // Use one FK field for Boss and Subordinates
public virtual ICollection<Person> Subordinates { get; set; }
}

现在您可以加载一个 PersonInclude()下属

顺便说一句,您无法指定级联删除/更新规则,因为 Sql Server 不接受循环级联路径。

关于.net - 如何定义构成(上司、下属关系),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30797441/

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