Я использую Entity-Framework в Winforms приложении.Приложение подключается к MSSQLServer и все работает отлично.Затем я отсоединяю базу данных и копирую файл .mdf
в папку приложения и изменяю строку подключения для использования локального файла .mdf
, но все равно все работает нормально.
Проблема заключается в том, что при копировании приложениявнезапно вместе с базой данных на другом компьютере EF пытается воссоздать базу данных и выдает следующую ошибку:
Невозможно создать файл 'Path \ MyDatabaseName.mdf' , поскольку он уже существует.Измените путь к файлу или имя файла и повторите операцию.СОЗДАТЬ БАЗУ ДАННЫХ не удалось.Некоторые имена файлов не могут быть созданы.Проверьте связанные ошибки.
Инициализатор контекста установлен на MigrateDatabaseToLatestVersion
:
Database.SetInitializer<MyContext>(new MigrateDatabaseToLatestVersion<MyContext, DAL.Migrations.Configuration>("MyConnectionString"));
Кроме того, автоматическая миграция отключена, и EF Code-First создает на Sql-сервере базу данныхи уже обновлено до последней миграции, поэтому миграция не требуется.
Строка подключения для первого сценария:
<add name="MyConnectionString" connectionString="Server=DESKTOP-XXXXXXX; Database=MyDatabase; Integrated Security=True; Connect Timeout=30;" providerName="System.Data.SqlClient">
и для локального .mdf
файл:
<add name="MyConnectionString" connectionString="Data Source=(LocalDB)\MSSQLLocalDB; AttachDbFilename=|DataDirectory|\MyDatabase.mdf; Integrated Security=True;Connect Timeout=30" providerName="System.Data.SqlClient" />
Итак, что здесь происходит ??