我的DataAccess
项目中有两(2)个SqlServerCe SP2数据库。
出于解释的目的,假设一个数据库是 Company.sdf ,另一个数据库是 Private.sdf 。两个数据库都具有完全相同的结构:相同的表,相同的列ID等。
Company.sdf 数据库包含从我们公司的服务器下载的所有产品的最新信息,以便在网络连接不可用时允许工程师和销售人员访问信息。
Private.sdf 数据库包含工程师和销售人员为构建系统或估算成本而创建的任何项目或方案。
我首先为名为 CompanyModel 的 Company.sdf 数据库创建实体模型。我终于得到了实体模型,在遇到一些困难之后连接到它(Entity Framework Noobie)。
今天,我为名为 PrivateModel 的 Private.sdf 数据库创建了第二个实体模型。一旦我这样做,我就会收到多个错误,说明我的DataAccess
项目的每个成员已经包含了另一个数据库中类似项目的定义。
R A T S!
如何为类似数据库添加实体模型?
我的n级方法中的DataAccess
项目将是我的DAL。在这里搜索答案的时候,我在3013146中读到了RPM1984的回复,关于模型应该如何知道它连接到哪个数据库 - 这是你的DAL存储库的工作,但我是不知道如何最好地为我的情况做这件事。
答案 0 :(得分:2)
如果你有相同的结构,那么你不需要创建两个模型。您只能使用不同的连接字符串创建一个模型并使用不同的实例连接到不同的数据库。
您的上下文可以将连接字符串作为构造函数中的参数,您可以在其中指定两个不同的连接字符串。
只需创建一个模型,MyModel,
MyModelEntities companyContext =
new MyModelEntities("company connection string");
MyModelEntities privateContext =
new MyModelEntities("private connection string");
答案 1 :(得分:1)
您需要实现Repository模式。以下是一些非常简单的示例链接。
答案 2 :(得分:0)
我正在寻找的实际答案似乎只能通过致电EdmGen2来解决。我会进一步更新所有人。
如果有人知道实际执行此操作的方法,请随意发表评论或添加答案。
与此同时,我陷入了教程模式。
更新:
SteveQ56 on CodeProject已经指出了几个很好的引用:
和
这些似乎指向了我想要去的方向,而不必依赖EdmGen2。