在多个项目中共享数据访问层DLLs

3
我们有多个项目共享同一个数据库。我们为此创建了数据访问层的DLL。现在问题是,为了将其作为DLL共享,我们在一个解决方案中保留了3个类库(3层数据库访问层)。未来可能会出现数据访问层需要进行一些修改(迁移)的情况。那么如何将数据库访问层保持得支持未来的修改,而现在并不是非常灵活呢?
我们无法在类库项目中运行迁移。其中一个解决方法是在Web项目中添加3个类库,然后分别使用它们进行修改。这种方法好吗?
我们已经将数据库访问层代码放在仓库的不同分支中。我们需要的是,每当对该分支进行更改时,它应触发某个过程,该过程提取修改后的DLL并将其添加为我们项目的引用。
1个回答

2
唯一应该在项目之间共享dll的情况是,如果项目非常小且从不更改。在现实世界中,这从未发生过,并且很快就会变得难以管理。
有许多方法可以做到这一点。以下是两种更好的方法:
1.将共享代码放入一个nuget包中,并在本地托管它(如果您没有使用Azure,则设置共享文件夹就像轻而易举)。 2.为共享数据创建微服务,并拥有可调用每个应用程序获取信息的API。可以轻松地制作一个nuget包,作为微服务的“客户端”并将其导入每个应用程序,而不是在每个应用程序中复制粘贴连接代码。

唯一的时候...然而,这正是NuGet包的用途,所以我觉得你的第一段要么多余,要么不够充分,我无法确定哪一个。:) 无论如何,对于数据库访问来说,共享一个DLL比复制代码要好得多。 - Auspex

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