NHibernate&;数据库强制执行的时间关系
这肯定是其他人遇到的情况,所以我想我应该问这个问题。对于nHibernate中表示时间关系的问题,人们是否实现了良好的通用解决方案。这个问题存在于我无法控制的数据库中,所以请不要告诉我DB模型不正确。我不能改变它 我们有一个简单的父子关系,孩子的有效时间必须在父母的有效时间内。简单地将Parent.ValidFrom=Child.ValidTo放入。该规则在数据库中强制执行,这意味着我不能发出导致记录违反该规则的UPDATE语句。这是不可谈判的 重要的是,这意味着这会影响我将更改写入数据库的顺序NHibernate&;数据库强制执行的时间关系,nhibernate,Nhibernate,这肯定是其他人遇到的情况,所以我想我应该问这个问题。对于nHibernate中表示时间关系的问题,人们是否实现了良好的通用解决方案。这个问题存在于我无法控制的数据库中,所以请不要告诉我DB模型不正确。我不能改变它 我们有一个简单的父子关系,孩子的有效时间必须在父母的有效时间内。简单地将Parent.ValidFrom=Child.ValidTo放入。该规则在数据库中强制执行,这意味着我不能发出导致记录违反该规则的UPDATE语句。这是不可谈判的 重要的是,这意味着这会影响我将更改写入数据库的顺序
我展开父项。
二,。展开子对象
我与孩子签约。
二,。与父母签约
我将父级有效更改为。
二,。移动孩子。
iii.将Parent.ValidFrom移动
我更改父项有效起始日期。
二,。移动孩子。
iii.将Parent.ValidTo移动到
请再次记住,我无法控制我的DB模式,我想写一些通用的东西,可以应用于我的整个模型。唯一需要注意的是,我只关心提交我在内存中修改过的对象。因此,我不希望编写一些代码来确定正确的ValidFrom/ValidTo日期。由于您无法控制NH发布更新语句的顺序,最好的做法可能是使用
IStatelessSession
手动执行更新
你基本上放弃了变化跟踪;您需要告诉NH要更新哪个对象