Где находится поведение класса в базовых моделях EF - PullRequest
0 голосов
/ 14 марта 2020

Может быть, это очень простой c вопрос, но я не могу понять это. Позвольте мне объяснить:

Я знаю из принципа MVC (я использовал Laravel), что существуют модели и контроллеры (представления здесь не имеют значения). Модели такие же, как в EF Core, они представляют собой таблицы в базе данных и т. Д. c. Затем у нас есть контроллеры, в которых мы реализуем функциональность CRUD.

Вопрос в том, где я должен написать эту функциональность, подобную CRUD, даже если она не является crud logi c. Моя интуиция говорит, что мне просто нужно создать другой класс, представляющий контроллер этой модели, и указать там все функции CRUD, такие как чтение, запись и т. Д. c. Но я не знаю, соответствует ли эта идея соглашению, есть ли соглашение или наилучшая практика для этого.

Где мне это реализовать?

Спасибо за помощь! :)

1 Ответ

0 голосов
/ 14 марта 2020

Я предполагаю, что вы создаете веб-API или аналогичный и храните свои данные в базе данных. Поскольку вы используете шаблон MVC, у вас уже есть модели и, возможно, вам понадобятся контроллеры, давайте сейчас проигнорируем Views.

Поскольку вас интересует, где создать CRUD logi c Я буду использовать сценарий веб-API. У вас есть несколько вариантов в зависимости от приложения. Вы можете реализовать шаблон CQRS и иметь отдельные классы для команд, например, INSERT и UPDATE для БД, и классы запросов для получения данных. Вы можете сделать это с Entity Framework, Dapper или любым другим, что вы предпочитаете. Шаблон репозитория является еще одним вариантом, если вы выполните поиск в Google, вы найдете множество примеров Microsoft.

В контроллере вы можете выполнить 4 действия: GetThing, PostThing; PutThing; DeleteThing. Обратите внимание, что соглашение об именах здесь HttpMethodEntity. С помощью этих действий вы можете проверять данные и вызывать методы вашего уровня данных для выполнения действий CRUD.

Некоторые темы для изучения, из них Вы должны начать понимать основы и то, как вы могли решить вашу проблему.

  1. Шаблон репозитория
  2. NET Базовые веб-API
  3. CQRS
  4. Dapper
  5. Entity Framework
...