gpt4 book ai didi

c# - 更新数据库集合的最佳策略

转载 作者:行者123 更新时间:2023-11-30 14:32:55 25 4
gpt4 key购买 nike

我们正在使用 C# 4 和 SQL Server 2008 R2 开发一个系统,并遵循领域驱动设计原则。没有使用 ORM。在某些情况下,我们有一个实体持有另一个实体的集合,例如:

public class Project
{
public IdCollection ParticipantUsers
{
get
{
//...
}
}

public void AddParticipantUser(Id idUser)
{
//...
}

public void RemoveParticipantUser(Id idUser)
{
//...
}
}

ProjectParticipantUsers 属性返回参与其中的用户 ID 的集合。 AddParticipantUserRemoveParticipantUser 方法,您明白了。

我们发现的问题如下。当一个项目实例被发送到存储库以在数据库上进行更新时,id 的 ParticipantUsers 集合可能已经从上次检索时发生了变化:一些 id 可能已经被添加,一些可能已经已被删除,有些可能完全相同。我们可以使用蛮力方法从数据库中删除该项目的所有参与用户,然后重新插入当前用户,但我想探索更好的方法。

您能想到什么更好的方法,允许我只插入那些已添加的 ID,删除那些已删除的 ID,并保留那些仍然存在于集合中的 ID?

最佳答案

实际上,我认为删除-重新插入方法比任何基于比较的解决方案都要好。

首先,它易于实现。

其次,它避免了再次获取数据进行比较。

您能否进一步解释为什么不推荐这种方法,也许我没听懂。

关于c# - 更新数据库集合的最佳策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17568292/

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