【发布时间】:2011-06-20 15:27:13
【问题描述】:
我是 EF 和 fluent API 的新手。我的 DBA 决定他想在公民身份表中映射一个带有 Is_Primary 标志的人的“主要”公民身份。所以我们的数据库看起来像这样:
**Person Table**
Person_Id int identity (PK)
First_Name nvarchar(30)
...
**Citizenship_Table**
Citizenship_Person_Id int identity (PK)
Person_Id int
Country_Code char(2)
Is_Primary byte
...
**Country_Table**
Country_Code char(2) (PK)
Country_Name varchar(30)
...
我真的不想在我的域模型中使用 Is_Primary 标志。相反,我希望我的域看起来像这样:
public class Person
{
public int Id {get; set;}
...
public virtual ICollection<Country> Citizenships {get; set;}
public Country PrimaryCitizenship {get; set;}
}
public class Country
{
public int Code {get; set;}
public string Name {get; set;}
}
有没有办法映射这种情况?
【问题讨论】:
-
数据库表结构是不是一成不变的?如果是并且您无法更改它,我相信没有希望对此进行映射。
Person和Country之间是多对多的关系,对吧?然后,由于这个“Is_Primary”标志,您甚至需要将连接表(“Citizenship_Table”)创建到模型中的实体,并创建两个一对多关系而不是单个多对多关系。
标签: entity-framework-4.1 fluent-interface