Можно ли автоматически отобразить представление БД в Entity Framework Core версии 2.1? - PullRequest
0 голосов
/ 13 июня 2018

Я нашел этот интересный вопрос по stackoverflow о отображении представления и работе с ним в EF Core.
Согласно его ответу , в предыдущих версиях EF Core было невозможно автоматически отобразить виды.

Но что теперь?В соответствии с дорожной картой Entity Framework 2.1 ,

Модель EF Core теперь может включать типы запросов.В отличие от типов сущностей,
типы запросов не имеют определенных ключей и не могут быть вставлены,
удалены или обновлены (т.е. они доступны только для чтения), но они могут быть возвращены
напрямую запросами.Вот некоторые из сценариев использования для типов запросов:

  • Отображение в представления без первичных ключей
  • (...)

Таким образом, вопрос заключается в следующем: возможно ли автоматически создать окружение базы данных и сопоставить его представления (как мы делаем для обычного scaffold-dbcontext с существующей базой данных)?Если да, кто-нибудь знает как?

Или единственный способ все еще создавать их вручную , как сказал Сампат Калиямурти в этом ответе для предыдущей версии EF Core?

1 Ответ

0 голосов
/ 14 июня 2018

РЕШЕНИЕ ВРЕМЕННОГО РЕШЕНИЯ:

Я нашел обходной путь, который состоит из:

  1. Переименование представления (например, из «MyView» в «My_View»)
  2. Создайте таблицу из этого представления с помощью запроса select * into table from view и назовите его так же, как исходное имя представления (например, таблица будет называться «MyView»)
  3. Установите в таблице первичный ключ
  4. Создайте базу данных DB , чтобы вы получили все классы и правильное отображение
  5. Удалите из дескриптора отображения свойство HasKey
  6. Удалите таблицу из базы данныхи переименуйте представление с его начальным именем (таким образом, снова из «My_View» в «MyView»)

Это сделает представление работающим как обычная таблица лесов, вы получите все правильные отображения ивсе.
Разница, конечно, в том, что вы не сможете вставить или отредактировать данные.
Но это нормально, так как если вы хотите работать с представлениями, вы знаете это с самого начала!

Но

СЧИТАЙТЕ, ЧТО ЭТОТ ВОПРОС ЕЩЕ ОТКРЫТ ...

... так как, несмотря на этот обходной путь, я все еще задаюсь вопросом, есть ли что-то более "непосредственное" и "родное" 2.1, введенное с ef 2.1, так как онисказано в дорожной карте.

Так что любая помощь и / или ответ будут такими, как признательность!

...