我正在尝试在MVC中实现N层。我有一个问题,我将如何使用依赖注入在数据层中注入applicationDbContext,因为当我从业务层(BLL)调用DAL时,它需要在构造函数中使用applicationDbContext的参数。
public class ProductTypesDAL
{
private readonly ApplicationDbContext _db;
protected ProductTypesDAL(ApplicationDbContext db)
{
_db = db;
}
public List<ProductType> GetProductTypes()
{
return _db.ProductType.ToList();
}
}
业务层:
public class ProductTypesBLL
{
private ProductTypesDAL objProductTypeDAL = new ProductTypesDAL(); //Error when I initialize
public List<ProductType> getProductTypes()
{
return objProductTypeDAL.GetProductTypes();
}
}
我在DAL Layer中有applicationDBContext。还有其他我不想要的东西吗?
谢谢, 本
答案 0 :(得分:0)
如果要在DAL中编写所有产品类型方法,请将其设置为静态。
试试这个:
public static class ProductTypesDAL
{
protected ProductTypesDAL()
{
}
public List<ProductType> GetProductTypes()
{
var _db = new ApplicationDbContext();
return _db.ProductType.ToList();
}
}
public class ProductTypesBLL
{
public List<ProductType> getProductTypes()
{
return ProductTypesDAL.GetProductTypes();
}
}
你需要确定的一件事是这个类:ApplicationDbContext是从DbContext派生的类的正确名称,它拥有DbSets。