【发布时间】:2013-03-30 23:14:57
【问题描述】:
我很难利用 Fluent NHibernate 的 HasOne 映射。基本上,A 类在 B 类中可以有一个匹配的(只有一个或没有)记录。
请帮助定义关系的 AMap 和 BMap 类。
谢谢。
public class A
{
public virtual int Id {get;set;}
public virtual string P1 {get;set;}
public virtual string P2 {get;set;}
public virtual string P3 {get;set;}
}
public class B
{
public virtual int Id {get;set;}
public virtual string P4 {get;set;}
public virtual string P5 {get;set;}
public virtual string P6 {get;set;}
}
【问题讨论】:
-
为什么
Employee不继承Person?Employee是Person的一种类型。然后你可以在映射这些类时使用 NHibernate 的继承工具。 -
你好笔筒。你可能是对的,但我猜我的问题是错误的。这是我真正想做的事情。表 A 具有属性 Id,p1,p2,p3。表 B 具有属性 Id,p4,p5,p6。表 A 中的每条记录在表 B 中最多可以有一个匹配记录,但也可以没有。它基本上是一对一的关系(准确地说是零或一)。
-
您有其他角色的表格吗?如果是这样,您如何确定一个人是员工而不是承包商?这是通过表中存在的记录来完成的,例如 Employee 表?或者,在 Person 表中是否有一个列来标识人员的角色?请您使用此信息更新您的问题。
-
我确实编辑了我的问题笔夹。您不必再将其视为人与员工的关系。它只是一个表A(主表)和表B,可以看起来像表A的扩展。它是一对一的记录关系。很抱歉弄乱了我最初的例子。
-
抱歉在我发帖之前没有看到更新的问题。
标签: c# nhibernate fluent-nhibernate one-to-one