如何在ASP.NET MVC中使用UnitOfWork和Repository在架构中使用IService?

时间:2016-05-18 18:29:16

标签: asp.net-mvc design-patterns repository-pattern

我使用unitofwork和Repository实现了一个正常工作的架构。 我有一个名为Product的实体,我在控制器中使用ProductService进行CRUD操作。

 public interface IProductService
{
    IList<Product> GetAll();
    Product GetById(int id);
    void Create(Product product);
    void Update(Product product);
    void Delete(int id);
}

public class ProductService : IProductService
{
    private IRepository<Product> _productRepository;

    public ProductService(IRepository<Product> productRepository)
    {
        _productRepository = productRepository;
    }

    public IList<Product> GetAll()
    {
        return _productRepository
            .GetAll()
            .ToList();
    }

    public Product GetById(int id)
    {
        return _productRepository.GetById(id);
    }

    public void Create(Product product)
    {
        _productRepository.Create(product);
    }

    public void Update(Product product)
    {
        _productRepository.Update(product);
    }

    public void Delete(int id)
    {
        _productRepository.Delete(id);
    }

}

现在我写了一个包含所有方法的服务基础并写下这个:

public interface IProductService:ServiceBase

我不想再写这些方法了。

1 个答案:

答案 0 :(得分:1)

首先,这个主题似乎没有任何具体问题。

假设您的意思是让您的接口实现一个抽象类:

您是否有任何理由不使用抽象类?您可以使用默认方法创建一个抽象类,并且先前包含在您的接口中的方法可以声明为抽象方法。你可以在那里看到一个例子:

Similar question

如果这不能回答您的问题,请提供其他信息,以便我们了解您要在此处实现的目标。

感谢。