gpt4 book ai didi

c# - 管理 Nhibernate 关系表的更好方法

转载 作者:行者123 更新时间:2023-11-30 22:42:48 24 4
gpt4 key购买 nike

我想知道在 Nhibernate 中是否有更好的方法来管理关系表。目前,当用户第一次创建 A 时,我可以调用 .Save ,一切都很好。但是当他们加载它并进行更改时,我不想简单地删除所有相应的记录并重新创建它们。我希望它删除不再有效的记录并创建新的记录并保留仍然有效的记录并单独保留在数据库中。

目前我浏览列表并删除不再选择的那些,然后将新的添加到列表中。似乎不是最好的方法,因为我在列表中循环了两次。那里有 LINQ one liner 解决方案吗?

基本上我目前正在做的事情:

Loop through A and delete whats not in B
Loop through B and add whats not in A

提前致谢。

最佳答案

不确定您的 A 和 B 究竟是什么。

如果它们是某个根实体的子实体,您可以使用 cascade="all-delete-orphan"。 NH 将删除所有不再在列表中的 child 。

如果您管理根实体列表,则需要完成“查找添加的项目/查找删除的项目”业务。

var removedItems = oldList.Except(newList);
var addedItems = newList.Except(oldList);

关于c# - 管理 Nhibernate 关系表的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4215986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com