【问题标题】:Entity Framework - Code first relationship mapping实体框架 - 代码优先关系映射
【发布时间】:2016-03-22 21:42:24
【问题描述】:

我有一种情况,我的 EntityA 应该有一个名为“PropertyB”的属性,它指向 EntityB 的可选实例,而 EntityB 有一个名为 PropertyA 的属性,它指向一个 EntityA 实例——尽管不一定是相同的 entityA 实例我们开始...

知道如何首先在代码中处理这个问题吗?

我正在研究的确切情况涉及组织成员和组织。 OrganisationMembers 当然是一个组织的成员,我通过在 OrganisationMember 上拥有一个指向该组织的属性来建模。

同时,Organizations 已经指定 person 作为联系点(或 POC),它被建模为 OrganisationMember 类型的属性。

当我尝试为此创建迁移时,我被告知 EF 无法确定哪个是主体,哪个是从属。

有什么想法吗?

【问题讨论】:

  • 能否将OrganisationMembersOrganisation 类的代码包含在内?
  • 我想这可能就是你要找的stackoverflow.com/questions/18331231/…
  • Deif - paste 的问题回答了我的问题,所以不需要。谢谢参观。粘贴 - 干杯伙伴...

标签: c# entity-framework ef-code-first


【解决方案1】:

你的EntityA,EntityB关系可以这样实现:

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

    public virtual EntityB EntityB { get; set; }
}

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

    public virtual EntityA EntityA { get; set; }
}

你需要告诉实体框架这个关系:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<EntityA>()
        .HasOptional(x => x.EntityB)
        .WithOptionalDependent();

    modelBuilder.Entity<EntityB>()
        .HasOptional(x => x.EntityA)
        .WithOptionalDependent();
}

【讨论】:

  • 谢谢 - 非常有趣。
猜你喜欢
  • 2011-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-11
  • 2017-07-05
  • 2012-03-12
  • 2011-04-21
相关资源
最近更新 更多