使用实体框架将ORM和Autofac重构为我的MVC应用程序,作为DiContainter。
我遇到了下一个"问题。 我有一个控制器,我对一个具有许多复杂属性的对象进行crud操作。
这里我展示了一个与项目无关的简化示例。
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,....
对于所有这些对象我都有CRUD操作服务
对于没有复杂属性的对象,我将1个服务注入我的控制器,如
public class BrandController : Controller
{
readonly IBrandService brandService;
public KwaliteitController(IBrandService _BrandService)
{
brandService = _BrandService;
}
//here comes actionresults for CRUD operations and etcetera...
}
这很好用,看起来很干净。 现在的问题是我的CarController我还需要所有的名字 "或其他属性"适用于Fueltype,Brand,Engine,....
我可以从服务中检索这些值和ID,但我必须将它们全部注入我的控制器,如
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;
....
}
}
实际上我有超过10个属性的对象,所以我不得不在我的控制器中实现超过X的服务。 这对我来说就像一个严重的矫枉过正。 有没有办法我可以完成这个,而不必使用我的所有服务为1控制器。