В настоящее время я развертываю свое приложение в среде общего хостинга, и метод code-first с миграциями работает отлично, за исключением одной небольшой проблемы. Каждый раз, когда я хочу отправить сайт, я должен использовать опцию «Update-Database -script», потому что мне нужно добавлять перед каждым именем таблицы [dbo]
, потому что по умолчанию общий хост создает имя схемы по умолчанию, которое это то же имя, что и имя пользователя базы данных.
Если я захожу на свой общий хост и создаю базу данных, мне нужно создать пользователя. Если я назову этого пользователя администратором, то таблицы, созданные кодом во время входа в систему как администратор, будут выглядеть примерно так: «[admin].[BlogPosts]».Когда приложение запускается, все таблицы создаются, но я получаю исключение EF, потому что оно говорит, что «[dbo].[BlogPosts]» недействителен. Если я переименую имя схемы таблицы в «[dbo]» вместо «[admin]», это исправит ситуацию.
Чтобы обойти это, мне нужно сгенерировать сценарий миграции, который будет выполняться вручную, и добавить «[dbo]» перед всеми именами таблиц, потому что сценарий ссылается на таблицы только по их имени, а не по их схеме и их имени. .
Есть ли простой способ обойти это? Было бы так здорово, если бы все, что мне нужно было сделать, это опубликовать приложение, и все просто работало. Если бы не несоответствие имени схемы, это было бы развертывание в один клик, и все было бы великолепно.