Как определить представление базы данных с использованием Entity Framework 4 Code-First? Я ничего не могу найти об этом!
Как определить представление базы данных с помощью Entity Framework 4 Code-First?
Ответ 1
Это потому, что вы не можете определить представление базы данных с использованием подхода, основанного на кодах. Представление базы данных представляет собой конструкцию базы данных, которая использует SQL Query поверх существующих таблиц/функций. Вы не можете определить такие конструкции, используя первый код.
Если вы хотите просмотреть, вы должны создать его вручную, выполнив CREATE VIEW
SQL script, например, в пользовательском инициализаторе - это будет похоже на этот ответ. Просто имейте в виду, что это не поможет вам, если вы хотите сопоставить объект с представлением. В таком случае вам, вероятно, придется сначала отбросить таблицу, созданную EF, и создать представление с тем же именем (я не пробовал, но мог бы сделать трюк). Также имейте в виду, что не каждое представление является udpatable, поэтому вы, скорее всего, получите только объект, доступный только для чтения.
Ответ 2
Чтобы создать представление, вы создаете модель, а затем в инициализаторе вы запускаете инструкцию SQL для создания представления непосредственно против контекста с первой строкой кода, а затем в контексте вы переопределяете OnModelCreating и запускаете вторую строку код для игнорирования модели.
context.Database.ExecuteSqlCommand(Resources.<resourcename>);
modelBuilder.Ignore<modeltype>();