我对开发架构以及被认为是理想的代码和逻辑组织有疑问。
我在一家拥有多个C#解决方案的公司工作,有多个项目访问多个数据库。有些项目只访问一个数据库,有些项目访问所有数据库,依此类推。
现在,每个数据库的管理都在每个项目中进行。我一直在考虑创建库以统一所有这些过程。
有人可以就此给我一些见解吗?最好的方法是什么?
我一直在考虑将所有数据库逻辑集中在一个解决方案中,每个数据库都有单独的项目。这样我就可以创建类库,为每个库编译DLL,可以在项目和解决方案之间进行引用。
您如何看待上述概念,特别是使用Entity Framework?
提前致谢。
答案 0 :(得分:1)
我们的情况非常相似。
对于每个数据库,我们都有一个单独的类库项目。该项目包含上下文,实体和关联的迁移。
每个产品都引用与其合作的数据库对应的类库或类库。
当我们第一次启动时,每个开发人员都会检查类库,在本地构建并引用本地编译的DLL(我们使用post build事件将其复制到已知位置)。事实证明,This非常容易并且向该服务器发布更新。几个月前我们转向了这个解决方案,它的工作非常好。还有许多托管的NuGet提供商。
答案 1 :(得分:1)
这应该是肯定的方式。我会为此创建一个解决方案,在那里抽象所有数据库连接逻辑,然后从处理不同ConnectionString的其他解决方案中使用它。
我建议您查看NuGet如果您还没有,那么您肯定会对此软件包管理器有很多好处!
答案 2 :(得分:1)
我认为在您的应用程序中包含所有通用实体的集中式数据库在此处非常有用。如果你想保持其他数据库也没问题,你可以使用复制将数据从主数据库传输到其他数据库并在其应用程序中使用它们