假设我有一个包含许多不同对象的对象模型,然后使用实体框架映射到数据库表。这一切都很好。问题是当我想将更多对象保存到数据库时会发生什么。模型中的对象是相互关联的,因此当我将对象保存到数据库时,它们可能会引用数据库中已经存在的对象。
例如,如果我有一个名为的对象Person
,它有一个属性Friends
这本身就是一个人的名单。这意味着数据库中有一个 Persons 表,每个人都有一个由他们的 ID 标识的朋友列表。假设如果两个人的 ID 相同,那么他们就是同一个人,那么我相信如果我再次尝试添加它们,Entity Framework 会抛出错误。所以问题是当我添加另一个已经有朋友列表的人对象时,我想添加不在数据库中的朋友,我不想添加已经在数据库中的朋友。此外,这些人中的每一个都可能有/不在数据库中的朋友,我也希望他们考虑。要考虑的另一件事是,即使该人已经在数据库中,我也想查看他们的朋友列表并添加任何新朋友。
我觉得在使用数据库时这应该是一个相当普遍的问题,但我可能使用了错误的词汇,因为在我的所有搜索中实际上都没有出现任何有用的内容。它主要涉及如何在事后或类似情况下扫描数据库中的重复项。我希望通过实体框架批准的场所在业务逻辑 C# 代码层中处理此问题。任何帮助表示赞赏。先感谢您。