Я развертываю сайт в Azure, который использует EF6, используя опцию публикации VS Studio.
Я использую поведение по умолчанию для именования баз данных, а не задаю строку подключения, так как я делаю разработку с нескольких машин, которые имеют смесь localDB или SQL Express:
public WebsiteDBContext() : base("WebsiteDBContext")
EFвесь код находится в отдельном проекте для веб-сайта, так как он используется на нескольких веб-сайтах, совместно использующих одну и ту же базу данных.
Когда я публикую в Azure строки подключения, добавленные в web.config, включают пространство имен из проекта, код DBContextнаходится в:
<add name="Utils.Models.WebsiteDBContext" connectionString="Data Source=****.database.windows.net;Initial Catalog=MyDatabase;Persist Security Info=True;User ID=****;Password=****" providerName="System.Data.SqlClient" />
<add name="DefaultConnection" connectionString="Data Source=tcp:****.database.windows.net,1433;Initial Catalog=CreweAllen;User ID=****;Password=****" providerName="System.Data.SqlClient" />
<add name="Utils.Models.WebsiteDBContext_DatabasePublish" connectionString="Data Source=****.database.windows.net;Initial Catalog=MyDatabase;Persist Security Info=True;User ID=****;Password=****" providerName="System.Data.SqlClient" />
Миграция не запускается, я думаю, потому что она не может найти базу данных.
Если я вручную создаю таблицы и удаляю создания таблиц миграции, с которыми веб-сайт не работает: При установлении соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром.Сервер не найден или не был доступен.Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений.(поставщик: сетевые интерфейсы SQL, ошибка: 52 - Невозможно найти установку локальной базы данных времени выполнения.
Но если отредактировать файл web.config и удалить «Utils.Models.» из строки подключения WebsiteDBContext, но не из WebsiteDBContext_DatabasePublishон подключается к базе данных в порядке.
Как мне правильно назвать соединения и запустить миграцию? Пытался, но не смог найти решение.
Спасибо