如何让NHibernate使用数据库约束来改变处理顺序?

时间:2012-07-30 18:04:13

标签: nhibernate

我有一个数据库表,在外键(FK)字段和日期字段上有唯一约束,以防止给定FK的日期相同。我正在使用NHibernate(如果相关的话1.2)在单个事务中将两条记录保存到表中以获得相同的FK。一个已经存在NULL日期,并且正在更新以具有实际日期;另一个是带有NULL日期的插入。似乎发生的事情是NHibernate试图在更新之前插入,这违反了约束(相同的FK和NULL日期)。

如果不将保存分成多个部分,是否可以添加到映射中以使NHibernate意识到在更新之前插入会违反约束?

1 个答案:

答案 0 :(得分:2)

AFAIK没有指定Flush()上的操作顺序。但是,您可以将整个操作放入交易中,并在更改模型后调用session.Flush();,然后使用Save() SaveOrUpdate()