【发布时间】:2017-11-23 22:32:39
【问题描述】:
我是 Asp .Net Core 的新手,并使用它创建了 App。我在我的项目中使用通用存储库。但我有一个错误:
在尝试激活“ECommerce.Repository.ProductRepository”时无法解析“Microsoft.EntityFrameworkCore.DbContext”类型的服务。
BaseRepository
protected DbContext _dbContext;
protected readonly DbSet<T> _dbSet;
public BaseRepository(DbContext dbContext)
{
_dbContext = dbContext;
_dbSet = dbContext.Set<T>();
}
存储库
public partial class ProductRepository : BaseRepository<Product>, IProductRepository
{
public ProductRepository(DbContext dbContext) : base(dbContext) { }
}
服务
public partial class ProductService : BaseService<Product>, IProductService
{
private readonly IProductRepository _repository;
private readonly IProductValidation _validation;
private readonly IUnitOfWork _unitOfWork;
public ProductService(IProductValidation validation, IProductRepository respository, IUnitOfWork unitOfWork)
: base(validation, respository, unitOfWork)
{
_repository = respository;
_validation = validation;
_unitOfWork = unitOfWork;
}
}
验证
public partial class ProductValidation : BaseValidation<Product>, IProductValidation
{
private readonly IProductRepository _productRepository;
public ProductValidation(IProductRepository productRepository) : base(productRepository)
{
}
}
启动
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ECommerceDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
// Add framework services.
services.AddMvc();
services.AddTransient<IUnitOfWork, UnitOfWork>();
services.AddTransient<IProductRepository, ProductRepository>();
services.AddTransient<IProductService, ProductService>();
services.AddTransient<IProductValidation, ProductValidation>();
}
控制器
private readonly IProductService _productService;
public ValuesController(IProductService productService)
{
_productService = productService;
}
// GET api/values
[HttpGet]
public IEnumerable<Product> Get()
{
return _productService.GetAll();
}
请告诉我我的代码有什么问题。非常感谢
P/s:这段代码在我之前使用 Autofac 使用 Asp .Net 4.6 的项目中完美运行
【问题讨论】:
标签: c# dependency-injection asp.net-core entity-framework-core asp.net-core-webapi