Я пытался использовать Dependency Injection с платформой Entity в своем приложении MVC. В проекте я определил класс универсального репозитория для операций CRUD. Есть конкретные классы обслуживания для каждого объекта модели. Мой уровень контроллера в презентации использует конкретные классы слоя службы для получения данных из базы данных. Эти конкретные классы в свою очередь вызывают методы RepositoryClass для реализации реальной работы с базой данных.
Ниже приведен пример определения класса (для простоты я удалил различные детали интерфейса и реализацию некоторых методов):
class RepositoryBase<T>
{
Add(T entity) {...}
Update (T entity) {...}
Delete (T entity) {...}
T GetById(int id) {...}
IEnumerable<T> GetAll()
{dbContext.ToList();}
}
public class CarsService {
public IEnumerable<Cars> GetCars()
{
var cars = RepositoryBase<Cars>.GetAll();
return cars;
}
public Car GetCar(int id)
{
var car = RepositoryBase<T>.GetById(id);
return car;
}
}
Public class DealerService {...}
Все это прекрасно работает, пока мне приходится иметь дело с 1 типом объекта за раз в моем приложении. Но я не уверен, как внести изменения в класс обслуживания, чтобы получить данные для нескольких объектов, т. Е. Для автомобилей и дилеров. Обратите внимание, в моем сценарии, хотя у меня определен идентификатор дилера в модели автомобилей, но свойство навигации отсутствует. Поэтому я должен присоединиться к Cars и Dealers, используя запрос linq.
Пожалуйста, помогите определить правильный класс (слой), который необходимо изменить. Все примеры, которые я нашел, говорят только об одном объекте за один раз.