首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一对一,没有本金,依赖于EF?

一对一,没有本金,依赖于EF?
EN

Stack Overflow用户
提问于 2016-10-05 18:30:04
回答 1查看 653关注 0票数 2

在这个问题中(关联的主体端意味着实体框架中的1:1关系是什么),最好的答案是:

在一对一的关系中,一端必须是主体,第二端必须是依赖的,主端是先插入的,没有依赖的可以存在的。依赖端是必须插入主体后面的端,因为它具有主体的外键。

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

代码语言:javascript
复制
public class Person {
    public int Id {get;set;}
    public string Name {get;set;}
    public Person Spouse {get;set;}
}

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

EN

回答 1

Stack Overflow用户

发布于 2016-10-05 19:01:01

正如吉拉德在链接中指出的那样,EF无法将一对一的关系映射到同一个表中。

但是,您可以使用下面的Code来模拟到同一个表的一对一关系。在引擎盖下,他们的行为和你想要的一样。

代码语言:javascript
复制
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);

    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39881282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档