4

Refactored my MVC application using entity framework as ORM and Autofac as DiContainter.

I run into the next "problem. I have a controller where i do crud operations for a object that has lots of complex properties.

here I show a simplified example that has nothing to do with project.

public class Car  
{
       public int Id {get;set;}
       public int Doors { get; set; }
       public double Miles { get; set; }
       .....
       public Brand Brand { get; set; }
       public Engine Engine { get; set; }
       public FuelType FuelType {get;set;}

}

public class Brand 
{
    public int Id { get; set; }
    public string Name  { get; set; }

    .....

}// Same for Engine, FuelType,....

for all these Objects I have services for CRUD actions

for objects with no complex properties i inject 1 service into my controller like

public class BrandController : Controller
{

    readonly IBrandService brandService;
    public KwaliteitController(IBrandService  _BrandService)
    {
        brandService = _BrandService;
    }
   //here comes actionresults for CRUD operations and etcetera...
 }

This works fine and looks clean for my. Now the problem is for my CarController I also need all the names "or other properties" for Fueltype, Brand, Engine,....

I can retrieve these values and Id's from there service but than i have to inject them all into my controller like

     public class CarController : Controller
{
    readonly ICarService carService;
    readonly IBrandService brandService;
    readonly IFuelTypeService fuelTypeService;
    readonly IEngineService engineService;
    public KwaliteitController(ICarService _CarService IBrandService  _BrandService,.....)
    {
        carService = _CarService;
        brandService = _BrandService;
        ....
    }
 }

In reality I have objects with more than 10 property's like this so i wouldt have to implement more than X services into my controller. That looks to me like a serious overkill. is there a way I can accomplish this without having to use all my services for 1 controller.

Nkosi
  • 235,767
  • 35
  • 427
  • 472

0 Answers0