Entity Framework - 代码优先关系映射
Entity Framework - Code first relationship mapping
我遇到这样一种情况,EntityA 应该有一个名为 "PropertyB" 的 属性 指向 EntityB 的一个可选实例,而 EntityB 有一个名为 PropertyA 的 属性 指向回一个 EntityA 实例 - 尽管不一定是我们开始使用的 entityA 实例...
知道如何先在代码中处理这个问题吗?
我正在查看的确切场景涉及 OrganisationMembers 和 Orgainsations。 OrganisationMembers 当然是组织的成员,我通过在指向组织的 OrganisationMember 上设置 属性 来建模。
与此同时,组织已指定人员作为联系人(或 POC),其建模为类型为 OrganisationMember 的 属性。
当我尝试为此创建迁移时,我被告知 EF 无法确定哪个是主体,哪个是依赖项。
有人有想法吗?
你的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; }
}
你需要告诉 Entity Framework 关系:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<EntityA>()
.HasOptional(x => x.EntityB)
.WithOptionalDependent();
modelBuilder.Entity<EntityB>()
.HasOptional(x => x.EntityA)
.WithOptionalDependent();
}
我遇到这样一种情况,EntityA 应该有一个名为 "PropertyB" 的 属性 指向 EntityB 的一个可选实例,而 EntityB 有一个名为 PropertyA 的 属性 指向回一个 EntityA 实例 - 尽管不一定是我们开始使用的 entityA 实例...
知道如何先在代码中处理这个问题吗?
我正在查看的确切场景涉及 OrganisationMembers 和 Orgainsations。 OrganisationMembers 当然是组织的成员,我通过在指向组织的 OrganisationMember 上设置 属性 来建模。
与此同时,组织已指定人员作为联系人(或 POC),其建模为类型为 OrganisationMember 的 属性。
当我尝试为此创建迁移时,我被告知 EF 无法确定哪个是主体,哪个是依赖项。
有人有想法吗?
你的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; }
}
你需要告诉 Entity Framework 关系:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<EntityA>()
.HasOptional(x => x.EntityB)
.WithOptionalDependent();
modelBuilder.Entity<EntityB>()
.HasOptional(x => x.EntityA)
.WithOptionalDependent();
}