Service的设计

(个人理解:passwordHash、passwordSalt应该不能放在DTO中,因为DTO需要在各层之间传输,不安全。)

①、DTO需要哪些属性,取决于使用者需要哪些属性。

②、IService的实现。对GetById(long id)的理解:因为id是唯一的,所以调用之后应该判断结果是否为空。而对于GetByPhonNum(string phoneNum)来说,phoneNum在数据库是可以有重复的,所以调用完函数之后,除了判断是否为空,还应该判断是否有多个结果。例如:

var users = bs.GetAll().Include(u => u.City).AsNoTracking().Where(u => u.PhoneNum == phoneNum);
                int count = users.Count();
                if(count<=0)
                {
                    return null;
                }
                else if(count ==1)
                {
                    return ToDTO(users.Single());
                }
                else
                {
                    throw new ApplicationException("找到多条手机号为" + phoneNum + "的管理员");
                }


 

注意:

一、Include()是为了一次性把数据都加载出来。

二、AsNoTracking是为了不然外部对已经查询出来的数据进行修改而导致数据库的数据发生改变。

三、Select、SelectMany的区别https://www.cnblogs.com/itjeff/p/3368627.html

转载于:https://www.cnblogs.com/HuShaoyi/p/8541080.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值