在我的上一篇博客:对企业级应用开发的思考--分层 中,从个人的经验分享了关于程序分层方面的内容,得到了众多园友的支持。里面包含对业务逻辑层三种实现方式(事务脚本、活动记录集和领域模型)的简单描述。并没有深入去实现。本文来深入探讨一下。本文以下面这个实体结构与数据库结构为例: ...
在我的上一篇博客:对企业级应用开发的思考--分层 中,从个人的经验分享了关于程序分层方面的内容,得到了众多园友的支持。里面包含对业务逻辑层三种实现方式(事务脚本、活动记录集和领域模型)的简单描述。并没有深入去实现。本文来深入探讨一下。
本文以下面这个实体结构与数据库结构为例:
两个分别表示用户与学科信息(学科名称与分数)
假设有两个业务: - 取得某用户的平均分;
- 修改某用户某学科的分数;
|
数据访问部分统一使用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
(#换成@)。