• Linq To Sql 一个小技巧


    今天碰到一个问题

    var totalAmount = _context.UsersMonthCharges.Where(p=>p.UserName == UserName).Sum(data => data.Amount);

    Amount 为decimal类型

    当查询的 UsersMonthCharges 不存在这个用户的时候

    会抛出 不能将 Null 值赋给类型为 System.Decimal (不可为 null 的值类型)的成员。

    这个异常,解决方法,搜索了下google,没找到答案

    自己开动脑筋....

    猜测他的推断数据结果类型是根据 data => data.Amount 这个Amount来获取,尝试取巧方法:

    var totalAmount = _context.UsersMonthCharges.Where(p=>p.UserName == UserName).Sum(data => (decimal?)data.Amount);

    发现 鼠标放在Sum函数上,哈,果然不出所料,结果类型已经被推断为 decimal?

    重新编译执行,的确已经解决这个问题,结果为 null

    简单搞定这个问题

  • 相关阅读:
    垃圾收集器
    垃圾收集算法
    JVM内存模型
    工厂方法模式
    类加载机制
    六大设计原则
    单例模式
    HFish开源蜜罐搭建
    利用metasploit复现永恒之蓝
    零信任网络初识
  • 原文地址:https://www.cnblogs.com/mine/p/1399770.html
Copyright © 2020-2023  润新知