我想知道是否有更好的方法来管理Nhibernate中的关系表 . 目前,当用户首次创建A时,我可以调用.Save,一切都很好 . 但是当他们加载并进行更改时,我不只是想删除所有相应的记录并重新创建它们 . 我希望它删除不再有效的记录并创建新的记录,并保留那些仍然有效且仅在数据库中的记录 .
目前,我查看列表并删除未选择的列表,然后将这些列表添加到新列表中 . 看起来不是最好的方法,因为我循环遍历列表两次 . 那里有LINQ单线解决方案吗?
基本上我正在做的事情:
循环通过A并删除不在B循环到B中的最新内容并添加不在A中的内容
提前致谢 .
1 回答
不确定你的A和B实际上是什么 .
如果它们是某个根实体的子节点,则可以使用cascade =“all-delete-orphan” . NH将删除所有不在列表中的孩子 .
如果您管理根实体列表,则需要通过此“查找添加的项目/查找已删除项目”业务 .