Могу ли я изменить имя схемы по умолчанию в Entity Framework 4.3 code-first?

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

Если я захожу на свой общий хост и создаю базу данных, мне нужно создать пользователя. Если я назову этого пользователя администратором, то таблицы, созданные кодом во время входа в систему как администратор, будут выглядеть примерно так: «[admin].[BlogPosts]».Когда приложение запускается, все таблицы создаются, но я получаю исключение EF, потому что оно говорит, что «[dbo].[BlogPosts]» недействителен. Если я переименую имя схемы таблицы в «[dbo]» вместо «[admin]», это исправит ситуацию.

Чтобы обойти это, мне нужно сгенерировать сценарий миграции, который будет выполняться вручную, и добавить «[dbo]» перед всеми именами таблиц, потому что сценарий ссылается на таблицы только по их имени, а не по их схеме и их имени. .

Есть ли простой способ обойти это? Было бы так здорово, если бы все, что мне нужно было сделать, это опубликовать приложение, и все просто работало. Если бы не несоответствие имени схемы, это было бы развертывание в один клик, и все было бы великолепно.

48
задан Chev 16 February 2016 в 09:49
поделиться