首页 > 解决方案 > 在多个项目之间共享数据访问层 DLL

问题描述

我们有多个共享同一个数据库的项目。我们为此数据访问层创建了 DLL。现在的问题是,为了将其作为 DLL 共享,我们在一个解决方案中保留了 3 个类库(3 层数据库访问层)。那里可能是未来数据访问层需要一些修改(迁移)的场景。那么如何保持数据库访问层支持未来的修改,目前还不是很灵活。

我们不能在类库项目中运行迁移,一种解决方法可能是拥有一个 Web 项目并在其中分别添加 3 个类库,然后使用它进行修改。这种方法有多好?

我们将数据库访问层代码保存在存储库中的不同分支中。我们需要的是,每当对分支进行一些更改时,它应该触发一些过程,该过程会提取修改后的 DLL 并将其作为参考添加到我们的项目中。

标签: c#asp.net-coredlln-tier-architectureef-core-2.0

解决方案


唯一应该跨项目共享 dll 的情况是项目真的很小并且永远不会改变。在现实世界中,情况并非如此,而且很快就会变得难以管理。

有很多方法可以做到这一点。以下是您可以执行此操作的两种更好的方法:

  1. 将共享代码放入 nuget 包并在本地托管(如果您没有 azure,就像设置共享文件夹一样简单)

  2. 为共享数据创建一个微服务,并使用您调用的 api 从每个应用程序获取信息。可以轻松地制作一个作为微服务“客户端”的 nuget 包,并将其导入每个应用程序,而不是在每个应用程序中复制粘贴连接代码。


推荐阅读