我们有一个使用 Entity Framework 5 的 Visual Studio 2012 ASP.NET MVC 项目。
有一些单元测试依赖于数据库。在测试项目中设置 app.config 文件以使用中央 SQL Server 数据库可以正常工作。
但是,使用 LocalDb 会更好,这样每个开发人员在运行测试时都有自己的数据库。特别是因为我们希望DropCreateDatabaseAlways
在运行时设置测试。
但是,我无法使设置正常工作。如果我在 app.config 中尝试这个:
<add name="TestDb"
connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=unittestdb;
Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\unittestdb.mdf"
providerName="System.Data.SqlClient" />
我得到:
System.Data.SqlClient.SqlException:发生文件激活错误。物理文件名“\unittestdb.mdf”可能不正确。诊断并更正其他错误,然后重试该操作。创建数据库失败。无法创建列出的某些文件名。检查相关错误。
听起来它希望 mdf 文件已经存在,这似乎很奇怪,因为它正在尝试创建数据库。手动创建 mdf 文件不会更改错误消息。