【发布时间】:2012-09-22 05:59:52
【问题描述】:
我只是想弄清楚是否可以在不使用私人收藏的情况下使用流畅的 NHibernate 映射 1 - 0..1(一对至多一对\一对零或一)关系。类结构示例如下:
public class ClassA
{
public int ClassAId { get; set; }
public string SomeDetails { get; set; }
public ClassB ClassB { get; set; }
}
public class ClassB
{
public ClassA ClassA { get; set; }
public int ClassBId { get; set; }
public string SomeChildDetails { get; set; }
}
在这个例子中,ClassA 可以有一个 ClassB,或者 ClassB 可以为空。
数据库结构类似于:
ClassA Table
-------------
int ClassA_ID PK
string SomeDetails
ClassB Table
------------
int ClassA_Id PK FK
string SomeChildDetails
在这种情况下,您不能使用 HasOne(x => x.ClassB).Cascade.All();因为这假定它必须始终有一个。
有没有一种方法可以做到这一点,而无需与 ClassA 上的私有 IList 建立一对多关系,并且让 ClassB 属性的 getter 获得列表中的第一个条目。
塔
R
【问题讨论】:
-
你不能把ID设置为
int?吗?
标签: c# nhibernate fluent-nhibernate fluent-nhibernate-mapping