EF更改数据库上下文

时间:2016-11-23 15:22:43

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

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

所以我开始为我必须使用的每种类型的数据库创建一个带有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做到这一点(或某种形式)? 谢谢大家!

1 个答案:

答案 0 :(得分:2)

解决这个问题的一个好方法是通过依赖注入。通过这种方式,依赖性被颠倒了,而你并没有"新的"方法中的上下文。

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

    //other logic here
}

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