嘿,大家好,快速NHibernate问题。
在我当前的项目中,我们有一个非规范化的表,对于给定的唯一标题记录,它将具有一个或多个非规范化的行。
当用户访问表示头部的POCO并执行更新时,我需要将此更改层叠到所有非规范化行。例如,如果用户更改了规范化标题中的字段'A‘,我现在需要所有非规范化的行来反映字段'A’的新值。
我目前只是在属性集的规范化头中执行foreach,因为我已经有了一个表示非规范化行的IList,但我希望有一个更优雅的解决方案,它不需要为每个需要向下传播到非规范化表的规范化字段编写foreach循环。
仅供参考,在纯存储过程中,我们只需要在存储存储过程中使用适当的where子句发出第二个update命令--但是我们也试图摆脱对存储过程的依赖,并在c#中执行大多数操作
提亚
发布于 2010-01-07 18:36:55
感谢上面所有人的回答。我按照建议查看了事件侦听器,对于我们试图完成的任务来说,它似乎有点太重了。
由于我们使用的是存储库模式,并且其目的是在模型中嵌入尽可能多的此类行为,因此我们最终决定将级联更新嵌入到header对象的属性的setter中。由于这些类型的级联可能很难测试,等等,它允许我们在pocos中测试模型中的一切,而不需要依赖SQL触发器或NHibernate。
简而言之,当一个头在它的setter中被更新时,我对细节对象的列表做了一个快速的for-each,还更新了对象树中的任何其他非规范化的pocos,然后用一个简单的setter用nHibernate把它放到数据库中。
-Bob
https://stackoverflow.com/questions/1796268
复制相似问题