在 2 个项目之间隔离引用的包 c#

问题描述 投票:0回答:1

我有一个内部包(DBAbs),它使用静态类来抽象数据库操作。

在我的解决方案中,我有 2 个不同的项目,它们都使用对 (DBAbs) 的引用,但连接到 2 个不同的数据库。我使用 Nuget 来管理引用。

当我只使用其中之一时,它工作得很好,但是当我尝试同时使用两者时,它会变得混乱,似乎它们共享相同的配置,我必须将连接字符串设置为正确的数据库,然后才能在之间切换他们。

我画了一个图表,概述了我认为会发生的事情与我观察到的发生的情况。

diagram

有没有办法隔离 2 个 DB 项目之间的 DBAbs 引用,或者我应该将 DBAbs 从使用静态类转换为实际的引用样式,以便我可以创建两个具有不同配置的实例。

我希望我提供了足够的信息,感谢您的帮助。

c# .net reference nuget .net-8.0
1个回答
0
投票

使用静态类(或者可能是“硬编码”配置访问)通常是一个坏主意。这就是我们发明“实例”的原因 - 相同的代码,但不同的数据(例如不同的连接字符串)。

可以使用

Aliases="Alias1"
参数使用不同版本的包(甚至可能使用相同的版本???)。但是,如果对某些配置文件/设置进行硬编码访问,您仍然会读取相同的配置。因此,您应该拥有相同的 DbContext instances 来接收不同的配置值并将提供对不同数据库的访问。

© www.soinside.com 2019 - 2024. All rights reserved.