我有一个查找表,其中包含产品(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这种关系产品?
非常感谢帮助。
答案 0 :(得分:0)
使用mapping.References(x => x.Product)
代替mapping.HasOne(x => x.Product)
。