EnsureDatabase.For.SqlDatabase выдает исключение

Я использую DbUp для переноса своей базы данных SQL Server. Я реализовал это в консольном приложении, которое принимает строку подключения. Если я запускаю это в моей локальной базе данных SQL Server, это работает. Если я запускаю его для базы данных SQL Azure, он также работает.

Однако, если я запускаю его для базы данных 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 Локальная БД \Instances\MSSQLLocalDB\master.mdf'уже существует. Выберите другое имя базы данных. Невозможно прикрепить файл 'C:\Projects\Prim\mgp\Prim.Mgp.Infrastructure.DataAccessTests\bin\Debug\netcoreapp2.2\Data\ccf243baa63eb4ea258b0155.mdf в качестве базы данных' master '.'

... что немного странно, потому что в нем упоминается база данных, отличная от указанной в строке подключения.

Кто-нибудь знает, что я могу делать не так?

PS: если я уберу проблемную строку кода, я могу без проблем запросить свою базу данных.

0 ответов

Возникла проблема с AttachDBFileName в строке подключения, попробуйте проверить с этой строкой подключения. И DBUp запускает мастер, чтобы он мог создать базу данных с помощью Ensure Database.For.Sql Database,

<connectionStrings>
 <add name="Database" connectionString="Server=.;Database=Migrations_DbUp;Integrated Security=true"/>
</connectionStrings>
Другие вопросы по тегам