Сначала создайте представление SQL из кода EF 6.1

Я только что изменил свое приложение с базы данных сначала на код! Какое большое улучшение в развертывании!. Но теперь у меня следующая проблема. Я сгенерировал свою модель Code-first из своей базы данных, но после воссоздания базы данных из сгенерированного кода мои представления из моей базы данных генерируются как таблицы!

Как сначала сгенерировать представления из кода? и/или сопоставить их с моими объектами, если мне нужно создать их вручную?

РЕДАКТИРОВАТЬ.

Пост Люка МакГрегора, безусловно, сблизил меня. Да, теперь он генерирует просмотры. Но миграции не работают.

При попытке выполнить оператор Update-Database первоначальный вывод состоит в том, что все еще есть изменения в коде.

Поэтому я выполнил команду Add-Migration xxx и снова запустил команду Update-Database.

РЕДАКТИРОВАТЬ 2:

Устранение некоторых различий между моим кодом Code-first и кодом SQL представления решило эту проблему!


person Spons    schedule 09.04.2014    source источник
comment
Возможный дубликат stackoverflow.com/questions/7461265/   -  person Craig W.    schedule 09.04.2014
comment
@КрейгВ. я думаю, что это другой вопрос, который относится к созданию, а не к BAU   -  person Not loved    schedule 09.04.2014
comment
Вторая половина вопроса касается сопоставления ваших сущностей с существующими представлениями (т. е. и/или сопоставления их с моими сущностями, если мне нужно сгенерировать их вручную?), что ему и придется делать. Я даже не могу понять, как сначала код будет генерировать представления, ему все еще нужна таблица за представлением для хранения/извлечения данных.   -  person Craig W.    schedule 09.04.2014
comment


Ответы (1)


Вам нужно будет создать ручную миграцию с некоторым необработанным SQL, например, что-то вроде строк ниже

public partial class MyMigration: DbMigration 
{ 
    public override void Up() 
    { 
        Sql("CREATE VIEW......"); 
    } 
}
person Not loved    schedule 09.04.2014
comment
Используйте Sql("EXEC ('CREATE View.......", чтобы избежать проблем с первым в пакете. Вы не можете добавить GO в миграцию, потому что это не команда sql - person Colin; 09.04.2014
comment
LukeMcgregor, Вы, безусловно, приблизили меня к решению. @Colin, спасибо за дополнение EXEC. Это, безусловно, работает, чтобы генерировать просмотры для меня. - person Spons; 09.04.2014
comment
Это работает, я заметил, что некоторые другие ответы на подобные вопросы создают DbContext и запускают команду просмотра обновления, а не вызывают Sql(). Это имеет неприятный побочный эффект фактического обновления БД даже при вызове update-database -script - person David Waterworth; 07.09.2015