添加localdb以进行测试

时间:2016-04-10 13:57:11

标签: c# sql-server-2012 ef-code-first entity-framework-6 localdb

我首先使用实体​​框架6代码。

目前我有一个生产数据库。 我想为测试添加一个不同的数据库。我怎么做?

我的测试项目中是否需要另一个连接字符串?

两个连接字符串之间应该有什么区别?

我尝试复制连接字符串并更改目录名称,但它会导致映射到同一个数据库。

请帮我理解一般连接字符串的每个部分

由于

1 个答案:

答案 0 :(得分:6)

在本地测试环境中使用本地数据库

您可以将localdb用于测试环境。 Localdb是本地开发系统上基于文件的数据库,从应用程序的角度来看,它不需要运行服务器,但行为类似于SQL Server。

我可以描述我将在Visual Studio 2013中执行的步骤:

  • 打开" SQL Server对象资源管理器"窗口
  • 展开以(localdb)v.11.0
  • 开头的条目
  • 右键单击"数据库"然后单击"添加新数据库"从上下文菜单
  • 在我的系统上,这将在我的用户文件夹中创建localdb(mdf文件),例如C:\Users\USERNAME\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0
  • 创建数据库后,您可以使用脚本在localdb中创建与您的实时环境匹配的表。例如,您可以使用SQL Server Management Studio导出表结构(数据库 - >任务 - >生成脚本)
  • 获取连接字符串:打开数据库的上下文菜单(仍在Visual Studio SQL Server对象资源管理器中),然后选择"属性"。
  • 在属性Windows中找到"连接字符串"财产并复制其价值。示例:Data Source=(localdb)\v11.0;Initial Catalog=DATABASENAME;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
  • 使用此连接字符串在您的web.config或connectionStrings元素中的app.config中创建新的连接字符串。将值放在connectionString属性中。请勿更改providerName属性。

     <connectionStrings>
       <add name="ConnectionName" connectionString="..." providerName="System.Data.SqlClient" />    
    </connectionStrings>
    
  • 在DbContext派生类中使用该连接字符串名称:

    public class YourDbContext : DbContext
    {
        public YourDbContext() : base("ConnectionName")
        {        
        }
    }
    
相关问题