实体框架:连接字符串在主项目中有效,但在测试项目中不起作用

本文关键字:项目 有效 不起作用 测试 框架 连接 字符串 实体 | 更新日期: 2023-09-27 18:33:48

我使用的是EF 6.0代码优先。在我的应用程序中,我使用硬编码的连接字符串进行连接:

public class MyDbContext: DbContext
{
      // ...
        public MyDbContext(string connectionString):
            base(connectionString)
     {   }
}
var dbContext = new MyDbContext("Data Source=.''SQLEXPRESS;Initial Catalog=DatabaseName;Integrated Security=SSPI");

这工作得很好,我可以访问数据库。但是,在单元测试项目中,我使用相同的连接字符串进行连接,并且在我第一次尝试访问某些数据时连接失败:

初始化字符串的格式不符合规范 从索引 0 开始

为什么相同的连接字符串在主项目中有效,而在测试项目中不起作用?

实体框架:连接字符串在主项目中有效,但在测试项目中不起作用

app.config 配置错误。

两个项目(主项目和测试项目)中的部分看起来相同,除了一个项目。测试项目有一个额外的"参数"部分。

 <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="System.Data.SqlClient" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>

从测试项目的 app.config 中删除"参数"部分后,连接工作正常。