Как определить представление базы данных с помощью Entity Framework 4 Code-First? - PullRequest
18 голосов
/ 05 мая 2011

Как определить представление базы данных с помощью Entity Framework 4 Code-First?Я ничего не могу найти об этом нигде!

Ответы [ 2 ]

17 голосов
/ 05 мая 2011

Это потому, что вы не можете определить представление базы данных, используя подход кода в первую очередь.Представление базы данных - это структура базы данных, которая использует SQL-запрос поверх существующих таблиц / функций.Вы не можете сначала определить такие конструкции, используя код.

Если вы хотите просмотреть, вы должны создать его вручную, выполнив CREATE VIEW скрипт SQL, например, в пользовательском инициализаторе - он будет похож на этот ответ .Просто знайте, что это не поможет вам, если вы хотите отобразить сущность на представление.В таком случае вам, вероятно, придется сначала удалить таблицу, созданную EF, и создать представление с тем же именем (я не пробовал, но это могло бы помочь).Также имейте в виду, что не все представления доступны для просмотра, поэтому вы, скорее всего, получите объект только для чтения.

14 голосов
/ 13 июня 2012

Чтобы создать представление, вы создаете модель, затем в инициализаторе запускаете инструкцию SQL, чтобы создать представление непосредственно в контексте с первой строкой кода, а затем в контексте вы переопределяете OnModelCreating и запускаете вторую строкукод для игнорирования модели.

context.Database.ExecuteSqlCommand(Resources.<resourcename>);

modelBuilder.Ignore<modeltype>();
...