我正在创建一种数据导入器,我必须使用不同的数据库/表,具体取决于我导入的源数据库。
所以我开始为我必须使用的每种类型的数据库创建一个带有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做到这一点(或某种形式)? 谢谢大家!
答案 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