我正在使用 DbUp 迁移我的 SQL Server 数据库。我已经在一个控制台应用程序中实现了这个,它接受连接字符串。如果我对我的本地 SQL Server 数据库运行它,它就可以工作。如果我针对 Azure SQL 数据库运行它,它也可以工作。
但是,如果我针对在测试中动态创建的 LocalDb 数据库运行它,则会出现异常。
发生异常的行是:
EnsureDatabase.For.SqlDatabase(connectionString);
连接字符串参数包含:
Data Source=(LocalDB)\MSSQLLocalDB;AttachDBFileName=C:\Projects\Prim\mgp\Prim.Mgp.Infrastructure.DataAccessTests\bin\Debug\netcoreapp2.2\Data\ccf243baa63eb4ea258b0155.mdf;Initial Catalog=ccf243baa63eb4ea258b0155;Integrated Security=True;MultipleActiveResultSets=True;
例外是:
System.Data.SqlClient.SqlException: '数据库'C:\Users\ludwigs\AppData\Local\Microsoft\Microsoft SQL Server 本地 DB\Instances\MSSQLLocalDB\master.mdf' 已经存在。选择不同的数据库名称。无法将文件“C:\Projects\Prim\mgp\Prim.Mgp.Infrastructure.DataAccessTests\bin\Debug\netcoreapp2.2\Data\ccf243baa63eb4ea258b0155.mdf”附加为数据库“master”。
...这有点奇怪,因为它提到的数据库与我在连接字符串中指定的不同。
有谁知道我可能做错了什么?
PS:如果我删除了麻烦的代码行,我可以毫无问题地查询我的数据库。