我很想知道ASP.NET MVC中服务层的一个好例子(提供一些代码)吗?
感谢。
答案 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);
}
}