【问题标题】:EF Change Database contextEF 更改数据库上下文
【发布时间】:2016-11-23 15:22:43
【问题描述】:

我正在创建一种数据导入器,我必须从不同的数据库/表中工作,具体取决于我要导入的源数据库。

所以我开始为我必须使用的每种类型的数据库创建一个带有 EF 的模型。

根据应用程序设置,我必须从特定数据库导入数据。

所以我想做的是这样的:

var myDB; //the schema I need;
switch(DBType){
   case DBTypes.Application1:
          myDB = new APP1_Entities();
          break;
   case DBTypes.Application2:
          myDB = new APP1_Entities();
          break;
}

有什么方法可以用 C# 和 EF 做到这一点(或某种)? 谢谢大家!

【问题讨论】:

  • 查看依赖注入。
  • 依赖注入如何帮助导入过程?
  • OP,你到底有什么解决不了的?您必须使用其中一种上下文从数据库中读取数据。输出应该是什么?

标签: c# entity-framework model-view-controller


【解决方案1】:

解决这个问题的一个好方法是通过依赖注入。这样,依赖关系就被反转了,您不会在方法中“更新”上下文。

public void DoSomething(DbContext context)
{
    myDb = context;

    //other logic here
}

这将方法的控制权交给了调用者。有关更多信息,网络上有大量资源。 MSDN 文档在这里:https://msdn.microsoft.com/en-us/library/hh323705(v=vs.100).aspx

【讨论】:

    猜你喜欢
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 2014-09-14
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多