Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Базовый C# .Net .Создаю модели описывающие объекты , чтобы в последствии связать с базой (при помощи EF)

vato 1 Мастер (1451), открыт 5 часов назад
Нужно ли создавая модель например книги (свойства: id, category,author и т.д) создавать приватный конструктор и статичный метод вариации, который создаст объект только если валидация пройдена успешно в обратном случае выбросит ошибку , или не обязательно это делать , что я является хорошим и плохим тоном в описании моделей?( Я начинающий, буду рад развернутому живому ответу , а не ответу сгенерированным AI , ответ исходящий с личного опыта ценю больше)
2 ответа
Максим Искусственный Интеллект (213233) 4 часа назад
Обычно твои данные это просто данные без всякой логики или валидации данных. Логику принято выносить на другой уровень. Но есть и такие разработчики, которые считают, что лучше связывать логику и данные, но это менее распространённый подход.
vato 1Мастер (1451) 2 часа назад
Я думал сделать модели сервисы , интерфейс для репозиторий , и комманд классы (dto) , построить архитектуру и логику , а затем подтянуть базу и в конце api . Так я вижу этапы создания проекта (я начинающий легко путаюсь) , звучит нормально или бредни умолешенного?
Максим Искусственный Интеллект (213233) vato 1, всё зависит от проекта и от того, что с ним планируется делать в будущем. Нет одного универсального подхода. Единственное, усложнять проект ни к чему, если от этого усложнения в будущем не будет никакого толку.
Александр Просветленный (21145) 4 часа назад
Обычно делают так. Модели создают в сборке .Domain, без всяких приватных конструкторов и статики. А вся конфигурация выносится в сборку .Context, где находится DbContext и файлы конфигурации ваших сущностей. Более удобно и гибко сделать это при помощи FluentAPI и интерфейса IEntityTypeConfiguration. Ну а остальная логика связанная с сущностями выносится на уровень приложения или инфраструктуры. Это зависит от того, как и какие сервисы будут работать с сущностями.
vato 1Мастер (1451) 2 часа назад
Я думал сделать модели сервисы , интерфейс для репозиторий , и комманд классы (dto) , построить архитектуру и логику , а затем подтянуть базу и в конце api . Так я вижу этапы создания проекта (я начинающий легко путаюсь) , звучит нормально или бредни умолешенного?
Похожие вопросы