从查找表中可以看到流畅的NHibernate外键是Null

时间:2010-11-04 09:48:43

标签: fluent-nhibernate nhibernate-mapping fluent

我有一个查找表,其中包含产品(Product表),CustomerOrder表包含订单详细信息,OrderLines表包含每个订购产品的行。

所以实体看起来像这样

订单行

Id
..stuff..
Product

产品

Id
ProductInfo

表格看起来相同,除了Product而不是ProductId外键。 映射覆盖看起来像这样

For OrderLine

mapping.HasOne(x => x.Product)
        .Fetch.Join()
        .Cascade.All();

就是这样。问题是这样,上面的语句将null作为ProductId外键插入,如果我删除它正确工作的映射,但这会导致系统中的多个(如数千)选择。我在这里错过了什么?如果我把一个虚拟回到Product中的OrderLine,那么NHibernate会尝试更新这两个实体(即它试图在产品表中插入一条新记录,该记录已经存在。如何在没有尝试更新的情况下告诉NHibernate这种关系产品?

非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

使用mapping.References(x => x.Product)代替mapping.HasOne(x => x.Product)

相关问题