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