gpt4 book ai didi

c# - 开发和生产数据库

转载 作者:行者123 更新时间:2023-11-30 12:14:14 24 4
gpt4 key购买 nike

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

因此,为了避免在运行测试时出现干扰,我们希望使用不同的数据库进行测试。使用 Entity Framework 时我们如何处理第二个数据库?我们想要一个半自动(至少)的解决方案,这样我们就不必在每次需要运行测试时都摆弄 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>

当您想要运行测试时,请确保在正确的配置下构建。

Configuration Manager

还有一个 Visual Studio 插件 SlowCheetah这使得整个过程在 IDE 中非常无缝。

关于c# - 开发和生产数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9959081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com