gpt4 book ai didi

c# - 一对一无本金依赖EF?

转载 作者:太空宇宙 更新时间:2023-11-03 12:38:44 24 4
gpt4 key购买 nike

在此question (关联的主体端在 Entity Framework 中的 1:1 关系中意味着什么)最佳答案是:

In one-to-one relation one end must be principal and second end must be dependent. Principal end is the one which will be inserted first and which can exist without the dependent one. Dependent end is the one which must be inserted after the principal because it has foreign key to the principal.

我想知道,如何在没有主体和依赖元素的 Entity Framework 中实现一对一关系?例如:

public class Person {
public int Id {get;set;}
public string Name {get;set;}
public Person Spouse {get;set;}
}

每个人可能有也可能没有另一人作为配偶。如果在一对一中必须满足主体和依赖元素的存在,那么,在这个 Person 模型中主体和依赖元素在哪里?

最佳答案

正如 Gilad 在 link 中指出的那样EF 无法将一对一关系映射到同一个表。

但是,您可以使用遵循 Code First Fluent API 来模拟与同一个表的一对一关系。在引擎盖下,它们的行为方式与您希望的方式相同。

public class Person
{
public Person()
{
Dependents = new List<Person>();
}

public int Id { get; set; }
public string Name { get; set; }
public int Spouse { get; set; }
public virtual ICollection<Person> Dependents { get; set; }
public virtual Person Primary { get; set; }
}

public class PersonMap : EntityTypeConfiguration<Person>
{
public PersonMap()
{
HasRequired(t => t.Primary)
.WithMany(t => t.Dependents)
.HasForeignKey(d => d.Spouse);

}
}

关于c# - 一对一无本金依赖EF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39881282/

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