• 请看高质量的代码——更新


    需求:

    代码:

     1 namespace Demo.Services
     2 {
     3     public class UserService : IUserService
     4     {
     5         public void UpdateByAdmin(User user, int[] roleIds)
     6         {
     7             using (var db = new DemoDbContext())
     8             {
     9                 var dbUser = db.Users.Get(user.Id);
    10                 if (dbUser == null)
    11                 {
    12                     throw new Exception("The user doesn't exist.");
    13                 }
    14                 if (!dbUser.Username.Eq(user.Username))
    15                 {
    16                     if (db.Users.Exists(user.Username))
    17                     {
    18                         throw new Exception("The username is already taken.");
    19                     }
    20                 }
    21                 dbUser.UpdateByAdmin(user);
    22                 dbUser.UpdateRoles(roleIds, db);
    23                 db.SaveChanges();
    24             }
    25         }
    26     }
    27 }

     以上代码代表了标准的更新流程:

    • 第1步,从数据库获取实体类实例;
    • 第2步,判断是否为空,抛异常;
    • 第3步,检查其他数据,抛异常;
    • 第4步,更新字段或关联数据;
    • 第5步,提交到数据库。

     注意这里异常的抛出是很随意的,这得益于一个好的架构。一个好的架构允许你的代码在任何地方随意的抛出异常,并且不要去建异常类,那样做会阻碍你抛出对终端用户有意义的错误信息。

  • 相关阅读:
    基于.net 4.0框架的Cipher演示程序
    文件校验 加解密
    Base64加解密
    RSA加解密
    UBT框架加解密工具项目 UBT.Framework.Encryption
    AESTest
    message-digest algorithm 5
    Aforge.net
    Winform非UI线程更新UI界面的各种方法小结
    Hadoop-2.6.5安装
  • 原文地址:https://www.cnblogs.com/leotsai/p/how-to-write-beautiful-code-update.html
Copyright © 2020-2023  润新知