Entity Framework - 仅考虑符合特定条件的记录

3
我正在开发一个项目(Web应用程序 - ASP.NET MVC),它使用一个数据库。直到现在,该数据库仅保留一个客户的记录,但现在我需要将其转换为多客户数据库。想法是在数据库中的每个表中添加一个列(例如CompanyId),并在查询中仅考虑具有特定CompanyId的记录。
不幸的是,该项目已经相当成熟了,对于每个服务调用、每个Linq查询等都添加额外参数会非常麻烦。我知道应该从一开始就采用这种方式(多客户),但现在我付出了代价。
因此,我有两个选择:
1.单个数据库-问题在于如何告诉EF仅考虑CompanyId = X的记录,而不在每个单独的Linq查询中写Where(i => i.CompanyId == X)。
2.一个数据库=一个客户-为每个客户创建一个数据库似乎是非常好的解决方案,但在我们的项目中,用户可以访问多个数据库(客户可以与多家公司关联,并被要求选择他想要与哪家公司合作,并且可以自由更改)。问题在于我不知道如何在运行时更改连接字符串,也不知道这种解决方案是否可行。
请告诉我哪个选项更好,以及如何处理?
谢谢。

可能是重复的问题:https://dev59.com/BXVC5IYBdhLWcg3wjx5d - Cavyn VonDeylen
1个回答

0
为什么不为每个公司都有独立但相同的模式。然后可以根据所选公司注入正确的 db 上下文对象。通过这种方式,您可以避免大量的数据库重构,并避免关于公司 ID 的条件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接