Я создаю новый проект C # Web API
, и я хочу следовать лучшим соглашениям об именах для своих моделей.
Я видел в других проектах Microsoft, что для каждого метода у вас есть две модели: у той, которая получает данные в методе, есть suffix
с RequestModel
, например, если у меня есть Employee
method
для для получения отпусков сотрудников они будут использовать EmployeeHolidayRequestModel
, а тот, который будет использоваться для возврата данных из API, имеет suffix
с ResponseModel
, поэтому в данном примере модель будет EmployeeHolidayResponseModel
.
С другой стороны, для моего Models
проекта у меня есть некоторые сомнения в том, что мне нужно какое-то руководство, чтобы просто убедиться в том, что является лучшей практикой или схемой.
Я использую Dapper
как мой ORM
. Я использовал следующую структуру при создании своих моделей:
В папке
Entities я размещаю классы POCO
, которые точно отображают структуру таблицы моей БД. И я использую эти классы, когда я собираюсь создать новую сущность и сохранить ее в БД, или когда я собираюсь обновить ее и т. Д. Эти модели я никогда не использую для передачи данных из API или для данных, предоставляемых API.
Но, например, у меня есть несколько хранимых процедур в моей БД, которые не обязательно отображаются в таблицу, а результат - в пользовательскую модель.
Мой первый вопрос: должен ли я создать класс, который отобразит соответствующие результаты в мою папку Entity или в мою папку Custom ?
Поскольку, исходя из вышеприведенного вопроса, у меня есть несколько методов в моих репозиториях (, как на изображении ниже ), где я использую в качестве mapping
модели наименование ResponseModel
условные классы.
Должен ли я всегда использовать Entities в качестве классов сопоставления Database Sp? Если это так, то я должен использовать библиотеку типа Mapper
для преобразования из Entity
в класс суффиксов ResponseModel
, чтобы вернуть данные из API правильно?
Последний вопрос, сейчас я использую папку Custom для создания Request
и Response
моделей API
, а затем у меня есть подпапки в зависимости от таблицы или сущности, к которой относятся эти модели относится к. В случае, если у меня есть API, который не возвращает точную сущность, но он будет возвращать смесь данных, например, данные отчета, в которых вы смешиваете данные Сотрудника с выходным с выходным, хорошо ли это создавать только в корне пользовательской папки классы Response
и Request
модели? Я надеюсь, что это само объяснено.