我是NHibernate的新手,我有一项任务是使用existsinig实现来增强项目。目前的设计很简单,就像在'First Project'中一样:
store(1)->(many)Employee
现在我想这样做:
store(1)->(many)Employee AND
Empoyee(1)->(many)Child
从store-Employee到Employee-Child重新实现映射逻辑不起作用。
试图在网上发现类似的enter code here
但没有运气。
关于映射的任何提示都非常感谢。
由于
@MeckLey:非常感谢 为了回应 - 我正在尝试使用持久性规范示例来测试映射。在伪代码中我做了类似的事情:
new PersistenceSpecification<Child>(_session, new CustomEqualityComparerChild())
.CheckProperty(c => c.Name, "Child1Name")
--other Child prperties--
.CheckReference(c => c.Employee, new Employee{
Store = new Store{--store properties--},
--other Employee Properties--
});
外键不应为null的列插入空值。我尝试进行测试,以便按正确的顺序创建所有内容:
Store->Employee->Child
..但我失败了
@Meckley好的,这是真实的东西..'store'是“ReturnOrder”,'Employee'是“ReturnOrderLineItem”,'Chlid'是“ReturnOrderReplacementItem” 这些类遵循“FirstExample”的确切结构,映射如下:
public ReturnOrderMap()
{
Id(x => x.Id);
Map(x => x.OrderTrackingNumber);
Map(x => x.UserId);
HasMany(x => x.ReturnOrderLineItems).Inverse().Cascade.AllDeleteOrphan();
}
public ReturnOrderLineItemMap()
{
Id(x => x.Id);
Map(x => x.Sku);
Map(x => x.Status);
Map(x => x.Comments);
HasMany(x => x.ReturnOrderReplacementItems).Inverse().Cascade.AllDeleteOrphan();
References(x => x.ReturnOrder);
}
public ReturnOrderReplacementItemMap()
{
Id(x => x.Id);
Map(x => x.Quantity);
Map(x => x.Size);
References(x => x.ReturnOrderLineItem);
}
我会跳过Mapping测试并尝试查看它是否真的有效,也许你不能用PesristenceSpecification测试这样的东西..