2012-09-17 77 views
0

所以我有一个ADO.NET对象,我用它通过数据上下文访问数据库。快速切换数据上下文

我有2个独立的数据库中的测试数据与非常相似的模式。我正在考虑从2个数据库中创建2个模型。但我不确定“切换”模型最简单的方法。

理想情况下,我希望能够通过更改1行代码来切换上下文。切换仅用于诊断目的。我不能(很容易)创建一个数据上下文的静态实例,然后只是在开始时改变上下文的模型,因为我必须显式声明这个模型的类型上下文中的方法参数(然后每次更改模型时更改该类型)。

事情是这样的:

(using SF_EntitiesDEV1 ctx = new SF_EntitiesDEV1()) { 
    checkForStrangeStuff(ctx); 
    runTests(ctx); 
    checkResults(ctx); 
    ... etc 
} 

现在,如果我想改变SF_EntititesDEV1到SF_EntitiesDEV2我不得不改变方法的参数类型中的每一个方法。

回答

0

我会看看使用通用的存储库方法,如果你还没有。你会发现大多数例子都会使用通用的回购做CRUD工作,但我不明白你为什么不能用它来完成你所需要的工作。

本质上你会建立一个类,它将一个上下文(接口)作为它的构造函数中的一个参数。然后在实例化存储库并调用它的方法时传入要使用的上下文。

看看here关于如何设置通用存储库的相当不错的讨论。

+0

希望得到更简单的解决方案。 *叹* – micahhoover