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

2024-02-02

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

  • 它到底应该包括什么?包含什么?
  • 它应该与什么脱钩?

Thanks.


服务层应该包含业务操作,并且应该与数据访问层(存储库)解耦。服务层公开可以由多个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);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 在代码 MVC Razor 中渲染部分视图

    我正在使用 MVC 3 Razor 制作一个简单的 CMS 以用于实践目的 我的想法是创建一些部分视图 我想要进行数据库查找 并发现 3 个部分视图需要渲染到页面 我该怎么做 在 WebForms 中 您可以调用 LoadControl C
  • 如何使用 DropDownListFor

    我想向网页添加下拉列表 html 控件 并用产品列表填充它 我的动作控制器看起来像 public ActionResult Index return View repository GetProducts true 产品模型 Linq to
  • 在razor视图引擎中转义@字符

    我正在使用 Razor 作为视图引擎创建一个示例 ASP NET MVC 3 站点 razor 语法开头为 字符例如 RenderBody 如果我在 cshtml 页面上写 test 它会给我解析错误 CS0103 当前上下文中不存在名称
  • 如何在 ASP.NET MVC 3 的 Razor 视图中编码嵌入的 javascript?

    如何在以下上下文中正确编码 JavaScript 我的 JSON 对象中的值是由应用程序管理员设置的 因此我假设它们需要正确编码 对于 HTML 和 JavaScript 都是如此 我在用着System Web Script Seriali
  • 从匿名类型获取值

    我有一个方法如下 public void MyMethod object obj implement 我这样称呼它 MyMethod new myparam waoww 那么我该如何实施MyMethod 获取 myparam 值 Edit
  • 在 ASP.NET 中,是否有因 Windows 身份验证登录失败而触发的事件? (记录 Windows 身份验证失败的详细信息)

    我正在构建一个 NET 4 0 ASP NET MVC 3 Intranet 应用程序 该应用程序以集成模式在 IIS 7 5 上运行 Windows 身份验证用于管理对网站的访问 Windows 身份验证模块已启用 所有其他身份验证模块均
  • 绑定到 ViewModel 时如何更新 Model?

    我有一个 HttpPost 操作方法签名如下 HttpPost public ActionResult Edit ExistingPostViewModel model Save the edited Post 现在 在过去 当我没有使用
  • 如何使用C#在asp.net中下载xml文件

    我正在使用网络应用程序ASP NET 与 MVC3 我是 mvc3 的新手 我的网页上有一个下载按钮 当我要单击下载按钮时 我希望能够打开该 XML 文件 我尝试过一些代码更改动作结果但我没有打开文件 通过使用下面提到的代码 我收到一个下载
  • ASP.NET MVC:如何可靠地获取当前请求的真实URL?

    现在我有一个 MVC 应用程序运行在http 127 0 0 1 8081 http 127 0 0 1 8081 它实际上在 Azure 计算模拟器中运行 浏览器位置栏清楚地显示端口号为 8081 然而 Request Url and R
  • 我如何将整数列表添加到路由

    我正在尝试将 int 数组添加到我的 Url Action 中 如下所示 var routeData new RouteValueDictionary for int i 0 i lt Model GroupsId Length i rou
  • 验证属性被触发两次

    在我的 MVC3 应用程序中 我有模型 未删除重要属性 public class AccountViewModel StringLength 65 public string Property1 get set StringLength 6
  • 将错误消息添加到@Html.ValidationSummary

    我使用标准 MVC3 Razor 视图和不显眼的 Javascript 验证 使用 Html ValidationSummary将它们显示在表单顶部 如果标准验证 例如 Required 通过 然后我运行一些非常自定义的客户端验证 当用户点
  • 为什么需要 JsonRequestBehavior?

    Why is Json Request Behavior needed 如果我想限制HttpGet对我的动作的请求我可以用 HttpPost 属性 Example HttpPost public JsonResult Foo return
  • ASP.NET MVC 4 Web Api 和 REST 经典服务之间的区别

    我看到了ASP Net MVC4 WebApi将服务公开为 Rest 服务 但实际上和正常有什么区别Rest and ASP Net MVC4 WebApi 我不确定你的意思normal Rest REST http en wikipedi
  • 在HTTP GET中使用MVC3的AntiForgeryToken来避免Javascript CSRF漏洞

    关于这个被黑客攻击的博客 http haacked com archive 2009 06 25 json hijacking aspx 我对实施提议的反 JSON GET 劫持解决方案犹豫不决 因为 缓解 JSON 劫持的推荐解决方案涉及
  • 在 asp.net mvc 3 中使用 Last-Modified 标头和 OutputCacheAttribute 进行客户端缓存

    Edited 我想在客户端缓存图像 并且知道在 mvc 3 中有不同的方法可以做到这一点 如果我错了 请纠正我 1 你可以使用OutputCacheAttribute其工作原理是Expireshttp 标头 但它会回来304 Not Mod
  • MVC 4 - 如何关闭默认的 Error.vbhtml 页面?

    有人知道如何关闭默认错误页面或它的引用位置吗 好吧 我想通了 事实证明 在我的自定义 ElmahHandleErrorAttribute 类中 OnException 方法确实被重写了 应该如此 但第一行代码是 MyBase OnExcep
  • 数据库优先方法和修改数据库模式

    我正在使用数据库优先方法使用实体框架 DbContext 构建 ASP NET MVC Web 应用程序 如果在某些情况下我需要修改数据库 例如添加新表或修改现有表 添加列或更改列数据类型 我应该 删除现有实体 edmx 和 tt 文件夹并
  • ASP.NET MVC - 更新生产中的预编译 Razor View 文件

    我想知道以下是否可能 通过在 Visual Studio 中打开项目设置 使用我们的 MVC 应用程序预编译 Razor 视图 将应用程序部署到生产环境 然后在稍后阶段 通过覆盖生产中现有的 cshtml 文件来更新视图 而无需回收应用程序
  • MVC3数据缓存技术

    我有一个 sql 查询 存储过程 在结果显示在网络网格中之前需要大约 8 10 秒才能返回 关于 asp net mvc3 中的缓存的性能最佳实践是什么 以便用户不必每次都花费 8 10 秒来加载该数据 减少优化查询 你可以使用内存缓存 h

随机推荐