2013-05-07 126 views
2



我想问我是否有适当的设计。
背景:
我使用EF4开发我的Web应用程序。该申请将由三个办事处使用。三个办事处的业务流程彼此相似。每个办公室都有自己的数据库,但大多数表中,数据库中的SPROC都是相同的。
我的想法:
我想将相同的表和存储过程提取到单个edmx文件,并在运行时基于登录用户将连接字符串指向数据库。

我的方法添加到构造
实体框架在运行时连接到多个数据库

MPREntities(string connectionString, string containerName) 

而且会通过的connectionString和容器名称,初始化MPREntities时。 containerName是相同的 - “MPREntities”,它不依赖于指向的数据库。在传递之前,connectionString将根据登录用户进行更改。我已经完成了一些测试,看起来可行。但是,这是一个正常的方法?有什么建议么?

回答

0

该方法可以工作,并且是一个很好的用例。

+1

系统上个月正式上线。到目前为止,它运作良好。优点是不需要维护大量通过数据库生成的类似模型。缺点是我需要保持数据库不变。 – 2014-01-13 01:17:42

+0

很好用,保持数据库的一致性对于这种方法的有效性很重要,但是这可以被认为是一种优势而不是缺点。如果没有这个“强制因素”,你的数据库会随着时间推移出现分歧。您还可以为每个数据库设置多个模型,因此如果您想促进差异,请将此模型用作“常用”模型,并使用另一个数据库特定的“扩展”模型 – stevenrcfox 2014-01-13 11:01:20

相关问题