我正在开发一个我想在不同的业务中安装的应用程序。每个企业可能需要此应用程序的不同部分。例如,该应用程序具有以下模块:公司管理,任务管理和簿记管理。有一家企业希望我只为他安装公司管理和簿记管理模块,而其他人则希望安装所有这三个模块。
那些模块(我有3个以上)坐在一个数据库中(历史原因),我不想分开数据库。此外,存在依赖关系 - 每个模块都应该了解公司管理模型,因为它包含所有客户,工人供应商等的列表。除此之外,每个模块都可以视为一个单独的应用程序。
应用程序是用C#.Net编写的,我正在使用实体框架。以下是我的解决方案中的项目列表:
因为我有非常大的edmx,这使得它很难管理,我想到了拆分edmx以便每个模块都有自己的edmx。这将导致MyApp.Web项目保留每个模块的工作单元(因为MyApp.Web使用所有模块,因此需要所有工作单元)。
我在想是否将edmx分成不同的edmx对我来说是一个很好的做法。我会批评任何解释,这将有助于我决定这是一个好主意,还是对我的案例有任何好的解决方法。
答案 0 :(得分:0)
我使用多个emdx文件是个好主意。它使系统的各个部分分开,这是一件好事。
然而,将有一大块数据库可以从多个edmx文件中访问。它只是这样结束:)在这种情况下要注意,如果您更改数据库,那么您可能必须更新这些多个edmx文件。它不是一个阻挡者,只是一个需要注意的事情。
话虽如此,那么: a)购买更多内存(Hardware is Cheap, Programmers are Expensive b)'冻结'旧的edmx并将新表放入新的emdx并仅进行增量更改
在更一般的层面上,如果你有一天没有拆分你的edmx,你的替换者会在StackOverflow上提出一个问题,其中包含以下行:“那些模块(我有3个以上)都坐在一个数据模型中(edmx)(历史原因)我不喜欢这个edmx。“ ;)