Немного изучив MVC, я с уверенностью могу сказать, что в части «Модель» я должен общаться с базой данных.В настоящее время у меня есть свои классы сущностей (такие как классический "Person") и класс DatabaseModel, который имеет открытые методы для выполнения SQL-запросов к базе данных.
На самом деле я не согласен, это неправильное представление, которое ябыло, когда я начал.Для меня M - это отображение базы данных, это сама база данных, использующая либо структуру сущностей, либо какую-либо другую среду по вашему выбору, так что вы можете создать базу данных с использованием подхода, основанного на первом коде, даже не касаясь SQL.
Затем в других классах моего контроллера я создаю объект DatabaseModel и выполняю открытые методы в этом классе для получения результатов SQL-запроса.
Это должно быть заданием для вашего хранилища.где вы получаете результаты SQL-запроса, имейте в виду, что это не фактический контроллер.
Правильно ли я подхожу к этому?Кроме того, у меня есть ощущение, что этот класс DatabaseModel станет очень большим.Есть ли хорошая стратегия для ее устранения (возможно, для связанных запросов).Я думал о том, чтобы разделить его на частичные классы в C #, но сейчас это мое лучшее предположение.
Вы почти у цели, сейчас у вас есть Модель (Отображение базы данных), Репозиторий (где вы выполняете и извлекаете данные), но вам не хватает Контроллер (где вы получаете репозиторий с помощью внедрения зависимостей и выполняете фактическую работу, например, отображаяданные в ViewModel ), в ViewModel (где вы отображаете данные таким образом, что получаете и отправляете только то, что вам нужно, из данных в представление, на первый взгляд это может показаться бессмысленным,почему мы не можем просто отправить данные в представление, но это дает много преимуществ, например, вы имеете дело только с тем, что вам действительно нужно, вы можете проверить ввод пользователя (проверка на стороне клиента), прежде чем сопоставить его с данными и т. д.), а затем, наконец, View (ваш дисплей).
Так что для меня MVC - это просто стандарт, это не значит, что у вас есть только Model View и Controller, я nevМне понравилась аббревиатура, сначала она вызывает слишком много путаницы, для меня это должно быть: M (модель, отображение базы данных) C (контроллер) VM (ViewModel) V (представление) , а такжехранилище между Моделью и Контроллером, но давайте оставим это без внимания, потому что это вещь личных предпочтений, большую часть времени люди просто запутываются в разнице между Моделью и ViewModel.