好好学习天天向上

dotnet学习中…

导航

Linq To Sql 一个小技巧

Posted on 2009-02-27 17:35  MiNe  阅读(531)  评论(1编辑  收藏  举报

今天碰到一个问题

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

简单搞定这个问题