【发布时间】:2014-08-01 15:04:08
【问题描述】:
我有以下类和表结构:
- 一个组件可以有 1 个人员 (PersonID)
- 一个组件可以有 1 个组 (GroupID)
- 一个组件可以有 1 个人和 1 个组
- 一个人总是有一个组件
-
一个组总是有一个组件
公共类组件{ 公共人人{get;放;} 公共组组 { 得到;放; } }
公共类人{ 公共组件组件 { 获取;放; } }
公开课组{ 公共组件组件 { 获取;放; } }
我以这种方式映射这个结构:
public ComponentMap()
{
this.ToTable("Component")
.Property(x => x.Id)
.HasColumnName("ComponentID");
}
public GroupMap()
{
this.ToTable("Group")
.Property(x => x.Id)
.HasColumnName("GroupID");
this.HasRequired(x => x.Component)
.WithOptional(x => x.Group);
}
public PersonMap()
{
this.ToTable("Person")
.Property(x => x.Id)
.HasColumnName("GroupID");
this.HasRequired(x => x.Component)
.WithOptional(x => x.Person);
}
如果我选择一个组或人员,则始终正确获取相关组件,但是当我选择一个组件时,使用组件 ID 而不是相对的 PersonID 或 GroupID 获取组 ID 和人员 ID。我在哪里可以说表格组件有 PersonID 和 GroupID?在组件映射内部?
表格是
**Component**
ComponentID
PersonID
GroupID
**Person**
PersonID
**Group**
GroupID
【问题讨论】:
标签: entity-framework one-to-one