相似数据库-实体模型框架

问题描述

| 我的
DataAccess
项目中有两(2)个sqlServerCe SP2数据库。 为了便于说明,假设一个数据库是Company.sdf,另一个数据库是Private.sdf。这两个数据库的结构完全相同:相同的表,相同的列ID等。 Company.sdf数据库包含所有产品的最新信息,这些信息是从我们公司的服务器下载的,以允许工程师和销售人员在网络连接不可用时访问信息。 Private.sdf数据库包含工程师和销售人员为构建系统或估算成本而创建的任何项目或方案。 我首先为Company.sdf数据库创建一个称为CompanyModel的实体模型。经过一些困难之后,我终于得到了实体模型来连接它(Entity Framework Noobie)。 今天,我为Private.sdf数据库创建了第二个实体模型,称为PrivateModel。这样做之后,我立即收到多个错误消息,指出我的
DataAccess
项目的每个成员已经包含另一个数据库中类似项目的定义。 R A T S! 如何为相似的数据库添加实体模型? 在我的n层方法中,ѭ0项目将成为我的DAL。在此处搜索答案时,我阅读了3013146年RPM1984的答复,其中关于模型如何不知道其连接到哪个数据库的问题-这是DAL存储库的工作,但我不确定如何最好地做到这一点对于我的情况。     

解决方法

如果结构相同,则无需创建两个模型。您只能创建一个模型,并仅使用不同的连接字符串使用不同的实例连接到不同的数据库。 您的上下文可以将连接字符串作为构造函数中的参数,然后可以在其中指定两个不同的连接字符串。 只需创建一个模型MyModel,
MyModelEntities companyContext = 
    new MyModelEntities(\"company connection string\");

MyModelEntities privateContext = 
    new MyModelEntities(\"private connection string\");
    ,您需要实现存储库模式。这里有一些非常简单的例子的链接。 http://blogs.microsoft.co.il/blogs/gilf/archive/2010/01/20/using-repository-pattern-with-entity-framework.aspx http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0.aspx     ,我正在寻找的实际答案似乎只能通过调用EdmGen2来解决。我将进一步更新大家。 如果有人知道执行此操作的方法,请随时发表评论或添加答案。 同时,我陷入了教程模式。 更新: SteveQ56在CodeProject上为我提供了一些很好的参考: 如何:手动配置实体框架项目 和 如何:手动定义实体数据模型(实体框架) 这些似乎为我指明了前进方向,而不必依赖EdmGen2。