数据库
首页 > 数据库> > C#-开发和生产数据库

C#-开发和生产数据库

作者:互联网

我和我的团队当前正在做一个项目,我们正在使用Entity Framework 4.1(代码优先).我们想编写一些测试,但是我们不希望它们在我们的主数据库上运行,因为我们在新加坡有一个团队为我们做的事情写一个客户,并且他们一直在访问该数据库.

因此,为了避免在运行测试时造成干扰,我们希望使用其他数据库进行测试.使用实体框架时,我们如何处理第二个数据库?我们想要一个(至少)半自动的解决方案,因此我们不必在每次需要运行测试时都弄弄Web.config.

解决方法:

摆弄web.config可能会导致一个容易出错的过程…除非您使用的是web.config Transformations.

我将在Visual Studio中为您的项目创建一个新配置“测试”,它可以是您现有开发配置的副本(或调试/发行版,无论如何).然后,在解决方案资源管理器中右键单击您的Web.config文件,然后单击“添加配置转换”.遵循有关如何编写转换文件的说明here.如果您只需要更改测试环境的EF连接字符串,它将在web.Test.config中看起来像这样:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
    <add name="AdventureWorksEntities" 
     connectionString="metadata=.\AdventureWorks.csdl|.\AdventureWorks.ssdl|.\AdventureWorks.msl;
     provider=System.Data.SqlClient;provider connection string='Data Source=TestDB;
     Initial Catalog=AdventureWorks;Integrated Security=True;Connection Timeout=60;
     multipleactiveresultsets=true'" providerName="System.Data.EntityClient" 
    xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>

只要要运行测试,请确保在正确的配置下进行构建.

还有一个Visual Studio外接程序SlowCheetah,使整个过程在IDE中非常无缝.

标签:multiple-databases,entity-framework-4-1,slowcheetah,c
来源: https://codeday.me/bug/20191201/2081557.html