EnsureDatabase.For.SqlDatabase引发异常

问题描述 投票:1回答:1

我正在使用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:如果删除麻烦的代码行,则可以毫无问题地查询数据库。

我正在使用DbUp迁移我的SQL Server数据库。我已经在一个接受连接字符串的控制台应用程序中实现了它。如果我对本地SQL Server数据库运行此命令,它将起作用。如果我...

c# sql-server localdb dbup
1个回答
0
投票

连接字符串中的AttachDBFileName出现问题,请尝试对此连接字符串进行测试。然后DBUp运行主数据库,以便它可以使用确保数据库.For.Sql数据库创建数据库,

© www.soinside.com 2019 - 2024. All rights reserved.