多环境设置中的C#数据库上下文

时间:2016-12-27 12:56:32

标签: c# database visual-studio

我在多环境设置(DEV,TEST,PREPROD,PROD)中工作,需要编写可以在环境之间轻松切换的测试(使用例如环境作为输入参数)。

我的测试需要进行数据库查找。目前我已经为每个环境创建了一个DBContext。 Image of solution explorer

目前,我的测试负责创建正确的数据库上下文

像这样:

if (environment.ToLower().Equals("test")) { 
            var arkiv = new TransformContentCenter_TestEntities1();
            var invoicesNotProcesseed = entries
                .Where(row => !arkiv.Brevarkiv.Any(row1 => row1.ReferenceNumber.Equals(row.invoiceNo) && row1.LetterType=="Invoice")).ToList();

我知道这是糟糕的代码风格,我正在寻找一种方法来创建一个负责环境处理的数据库层。但我不知道哪种设置是处理这种情况的最佳实践,以及如何将其实现到我的解决方案中。非常感谢任何帮助:)

1 个答案:

答案 0 :(得分:1)

您可以使用配置文件转换。请参阅https://msdn.microsoft.com/en-us/library/dd465318(v=vs.100).aspx

你可以使用第三方插件(或类似http://gunnarpeipman.com/2013/11/using-web-config-transforms-with-app-config-files/之类的东西)来完成app.config的相同操作。

因此,您可以根据运行测试时可以查找的构建配置来转换键/值(如连接字符串)。