Apa*_*rna 8 nhibernate nhibernate-mapping fluent-nhibernate
这是我第一次使用FluentNhibernate Mapping并面临如何引用另一个表的问题.任何帮助表示赞赏:
我有几个名为CD_ varname的表,所有这些包含两列 - CODE和DESCR.
我有一个名为Recipient的主表,它有两列,称为ALIVE和SEX,两者都是类型号,它们引用表CD_ALIVE和CD_SEX.如果收件人中的Alive = 1,那么我们需要从CD_ALIVE表中获取代码和descr,其中Code = 1.
我已经描述了一个Codef类:
public Class Codef
{
int Code { get; set; }
string Descr { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的收件人类将这些分配给组件.收件人类看起来像这样:
public Class IRecepient
{
int ID { get; set; }
Birth Birth {get; set;}
Death Death { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的出生和死亡课程是:
public Class Birth
{
DateTime BDate { get; set; }
Codef Sex { get; set; }
Codef Ethnicity { get; set; } //CD_ETHNICITy Table
Codef Race { get; set; } //CD_RACE Table
}
Run Code Online (Sandbox Code Playgroud)
和我的死亡班:
public Class Death
{
DateTime DeathDate { get; set; }
Codef Alive { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
所以,收件人中的主列"Alive"实际上是引用我的Recipient.Death.Alive.Code
我有一个codef映射类:
public CodefMapping()
{
Map(x => x.Code, "CODE");
Map(x => x.Descr, "DESCR");
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试进行收件人映射,这就是我被困住的地方.我可以这样做:
HasOne<CodefMapping>(c => c.Death.Alive)
.PropertyRef(c => c.Code)
.PropertyRef(c => c.Descr)
.WithForeignKey("ALIVE");
Run Code Online (Sandbox Code Playgroud)
这是行不通的:(非常感谢任何帮助.
谢谢.
Jon*_*son 18
我想你想使用References映射
HasOne 表示您映射在一起的2个实体共享一个"互斥"标识符
http://jagregory.com/writings/i-think-you-mean-a-many-to-one-sir/
| 归档时间: |
|
| 查看次数: |
18621 次 |
| 最近记录: |