modelBuilder.Query () перезаписывается лесами - PullRequest
0 голосов
/ 23 октября 2019

У меня есть приложение MVC Core (2.2) с Entity Framework Core (сначала база данных). Я использую оператор Scaffold-DbContext для генерации моих классов моделей из базы данных. Теперь мне нужно получить данные из представления SQL, кроме таблиц. Я делаю это вручную, добавляя следующее в OnModelCreating () класса контекста db:

modelBuilder.Query<SomeModel>().ToView("vwSomeView");

Когда мне нужно внести изменения (обновления) в схему базы данных, я запускаю Scaffold-DbContext иприведенный выше код перезаписывается и исчезает. Есть ли какое-то решение для этого?

1 Ответ

1 голос
/ 23 октября 2019

Вы можете создать частичный класс вашего класса DbContext. В этом частичном классе вы можете определить свой собственный OnModelCreating().

protected void OnModelCreating(ModelBuilder... )
{
    modelBuilder.Query<SomeModel>().ToView("vwSomeView");
    OnModelCreatingBase(modelBuilder);
}

В вашем классе лесов вы переименуете OnModelCreating в OnModelCreatingBase.

Каждый раз, когда вы строите свои сущности, все еще выполняется ручная работа, но вы получаете ошибку времени компиляции после запуска генератора, потому что OnModelCreating объявляется дважды. Это предпочтительнее, чем ошибка времени выполнения, с которой вы столкнулись бы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...