【问题标题】:Similar Databases - Entity Model Framework类似的数据库 - 实体模型框架
【发布时间】:2023-03-29 20:40:02
【问题描述】:

我的DataAccess 项目中有两 (2) 个 SqlServerCe SP2 数据库。

为了便于说明,假设一个数据库是 Company.sdf,另一个是 Private.sdf。两个数据库具有完全相同的结构:相同的表、相同的列 ID 等。

Company.sdf 数据库包含所有产品的最新信息,这些信息是从我们公司的服务器下载的,以便工程师和销售人员在网络连接不可用时访问信息。

Private.sdf 数据库包含工程师和销售人员为构建系统或估算成本而创建的任何项目或方案。

我首先为 Company.sdf 数据库创建了一个名为 CompanyModel 的实体模型。经过一番困难,我终于得到了实体模型来连接它(实体框架 Noobie)。

今天,我为名为 PrivateModelPrivate.sdf 数据库创建了我的第二个实体模型。执行此操作后,我立即收到多个错误,指出我的 DataAccess 项目的每个成员已经包含另一个数据库中类似项目的定义。

R A T S !

如何为相似的数据库添加实体模型?

DataAccess 项目将成为我在 n 层方法中的 DAL。在这里搜索答案时,我在3013146 中阅读了 RPM1984 的回复,内容是关于模型应该如何对它连接到哪个数据库一无所知 - 这是你的 DAL 存储库的工作,但我不确定如何根据我的情况最好地做到这一点。

【问题讨论】:

    标签: entity-framework multiple-databases


    【解决方案1】:

    如果你有相同的结构,那么你不需要创建两个模型。您只能使用不同的连接字符串创建一个模型并使用不同的实例连接到不同的数据库。

    您的上下文可以将连接字符串作为构造函数中的参数,您可以在其中指定两个不同的连接字符串。

    只需创建一个模型,MyModel,

    MyModelEntities companyContext = 
        new MyModelEntities("company connection string");
    
    MyModelEntities privateContext = 
        new MyModelEntities("private connection string");
    

    【讨论】:

    • 每个实体模型都有一个连接字符串,但每个模型返回不同的类型(CompanyModelPrivateModel)。如何设计一个构造函数来创建一个特定的实体模型并返回它?
    【解决方案2】:

    【讨论】:

    • 如果您按原样使用 EF,则您没有使用任何抽象级别。我相信 jp2code 正在寻找进一步的抽象。
    【解决方案3】:

    我正在寻找的实际答案似乎只能通过调用EdmGen2 来解决。我会进一步更新大家。

    如果有人知道实际执行此操作的方法,请随时发表评论或添加答案。

    与此同时,我陷入了教程模式。

    更新:

    SteveQ56 on CodeProject 向我指出了一些很好的参考资料:

    这些似乎为我指明了我想要前进的方向,而不必依赖 EdmGen2。

    【讨论】:

      猜你喜欢
      • 2017-10-04
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 2011-04-28
      • 2011-04-26
      • 1970-01-01
      • 2010-09-22
      • 2012-06-05
      相关资源
      最近更新 更多