在这个问题中(关联的主体端意味着实体框架中的1:1关系是什么),最好的答案是:
在一对一的关系中,一端必须是主体,第二端必须是依赖的,主端是先插入的,没有依赖的可以存在的。依赖端是必须插入主体后面的端,因为它具有主体的外键。
我想知道,在没有主体和依赖元素的实体框架中,如何实现一对一的关系?例如:
public class Person {
public int Id {get;set;}
public string Name {get;set;}
public Person Spouse {get;set;}
}每个人可以也可能没有另一个人作为配偶。如果在一对一的情况下,必须确定主体和依赖元素的存在,那么,在这个人的模型中,主体和依赖元素在哪里?
发布于 2016-10-05 19:01:01
正如吉拉德在链接中指出的那样,EF无法将一对一的关系映射到同一个表中。
但是,您可以使用下面的Code来模拟到同一个表的一对一关系。在引擎盖下,他们的行为和你想要的一样。
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);
}
}https://stackoverflow.com/questions/39881282
复制相似问题