你的位置:首页 > 软件开发 > ASP.net > 对企业级应用开发的思考(3)

对企业级应用开发的思考(3)

发布时间:2015-10-19 22:00:09
在我的上一篇博客:对企业级应用开发的思考--分层 中,从个人的经验分享了关于程序分层方面的内容,得到了众多园友的支持。里面包含对业务逻辑层三种实现方式(事务脚本、活动记录集和领域模型)的简单描述。并没有深入去实现。本文来深入探讨一下。本文以下面这个实体结构与数据库结构为例: ...

在我的上一篇博客:对企业级应用开发的思考--分层 中,从个人的经验分享了关于程序分层方面的内容,得到了众多园友的支持。里面包含对业务逻辑层三种实现方式(事务脚本、活动记录集和领域模型)的简单描述。并没有深入去实现。本文来深入探讨一下。

本文以下面这个实体结构与数据库结构为例:

 对企业级应用开发的思考(3)

对企业级应用开发的思考(3)

两个分别表示用户与学科信息(学科名称与分数)

假设有两个业务:

  1. 取得某用户的平均分;
  2. 修改某用户某学科的分数;

数据访问部分统一使用EF,因为数据访问部分不是重点,所以未给出代码,方便大家阅读。来看看几种方式的实现:

事务脚本

先贴代码:

public class TransactionScript  {    private TestContext dbContext = new TestContext();    //得到平均分    public int GetAverageScore(get='_blank'>string username)    {      int total = 0;      int count = 0;      var subjects = dbContext.Subjects.Where(s => s.UserInfo.UserName == username);      foreach (var s in subjects)      {        total += s.Score;        count++;      }      if (count == 0) return 0;      return total/count;          }    //修改指定账号的学科分数    public void ChangeScore(string username, string subjectName, int score)    {      var subject =        dbContext.Subjects.FirstOrDefault(u => u.Name == subjectName && u.UserInfo.UserName == username);      if(subject == null)        throw new Exception("not found");      subject.Score = score;      dbContext.SaveChanges();    }  }

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:对企业级应用开发的思考(3)

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录