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>