ASP.NET MVC中服务层的一个很好的例子是什么?

时间:2011-01-27 13:08:20

标签: asp.net-mvc-3

我很想知道ASP.NET MVC中服务层的一个好例子(提供一些代码)吗?

  • 究竟应包含哪些内容?
  • 它应该脱钩什么?

感谢。

1 个答案:

答案 0 :(得分:18)

服务层应包含业务操作,并且应与数据访问层(存储库)分离。服务层公开可以由多个CRUD操作组成的业务操作。这些CRUD操作由存储库执行。因此,例如,您可以进行业务操作,将一定数量的资金从一个帐户转移到另一个帐户,并且为了执行此业务操作,您需要首先确保发件人帐户有足够的条款,借记发件人帐户并贷记收款人帐户。服务操作也可以表示SQL事务的边界,这意味着在业务操作中执行的所有基本CRUD操作都应该在事务内部,并且在发生错误时,所有这些操作都应该成功或回滚。

为了将服务层与底层数据访问层分离,您可以使用接口:

public class BankService
{
    private readonly IAccountsRepository _accountsRepository;
    public OrdersService(IAccountsRepository accountsRepository)
    {
        _accountsRepository = accountsRepository;
    }

    public void Transfer(Account from, Account to, decimal amount)
    {
        _accountsRepository.Debit(from, amount);
        _accountsRepository.Credit(to, amount);
    }
}