Asp.net mvc 如何在n层MVC体系结构中使用applicationDbContext
我正在尝试在MVC中实现N层。我有一个问题,我将如何使用依赖注入在数据层中注入applicationDbContext,因为当我从业务层(BLL)调用DAL时,它需要构造函数中的参数applicationDbContextAsp.net mvc 如何在n层MVC体系结构中使用applicationDbContext,asp.net-mvc,asp.net-mvc-4,asp.net-core,Asp.net Mvc,Asp.net Mvc 4,Asp.net Core,我正在尝试在MVC中实现N层。我有一个问题,我将如何使用依赖注入在数据层中注入applicationDbContext,因为当我从业务层(BLL)调用DAL时,它需要构造函数中的参数applicationDbContext public class ProductTypesDAL { private readonly ApplicationDbContext _db; protected ProductTypesDAL(ApplicationDbContext db)
public class ProductTypesDAL
{
private readonly ApplicationDbContext _db;
protected ProductTypesDAL(ApplicationDbContext db)
{
_db = db;
}
public List<ProductType> GetProductTypes()
{
return _db.ProductType.ToList();
}
}
公共类ProductTypesDAL
{
私有只读应用程序dbContext_db;
受保护的ProductTypesDAL(ApplicationDbContext数据库)
{
_db=db;
}
公共列表GetProductTypes()
{
返回_db.ProductType.ToList();
}
}
业务层:
public class ProductTypesBLL
{
private ProductTypesDAL objProductTypeDAL = new ProductTypesDAL(); //Error when I initialize
public List<ProductType> getProductTypes()
{
return objProductTypeDAL.GetProductTypes();
}
}
公共类ProductTypesBLL
{
private ProductTypesDAL objProductTypeDAL=new ProductTypesDAL();//初始化时出错
公共列表getProductTypes()
{
返回objProductTypeDAL.GetProductTypes();
}
}
我在DAL层中有applicationDBContext。我还缺什么吗
谢谢,
Ben如果您想在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();
}
}
公共静态类ProductTypesDAL
{
受保护的ProductTypesDAL()
{
}
公共列表GetProductTypes()
{
var_db=新的应用程序dbContext();
返回_db.ProductType.ToList();
}
}
公共类ProductTypesBLL
{
公共列表getProductTypes()
{
返回ProductTypesDAL.GetProductTypes();
}
}
您需要确保的一件事是,这个类:ApplicationDbContext是从DbContext派生的类的正确名称,并且它包含数据库集。为什么要创建这些层?特别是在你的例子中。您将沿着堆栈向下传递一个dbcontext,只是为了在dbcontext上调用一个方法。