Как использовать applicationDbContext с n-уровневой архитектурой MVC - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь реализовать уровень N в MVC.У меня был вопрос о том, как использовать инъекцию зависимостей для внедрения applicationDbContext на уровне данных, потому что, когда я вызываю DAL из бизнес-уровня (BLL), он ожидает параметр 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();
    }
}

У меня есть приложение DBContext в DAL Layer.Есть что-то еще, что мне не хватает?

Спасибо, Бен

1 Ответ

0 голосов
/ 12 июня 2018

Если вы хотите написать все методы типа продукта в вашем 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..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...