Linq的Bug?计算合计报错,LinqPad却可通过

heguo 2009-07-15 04:58:29
winxp + .net3.5 sp1 + vs2008 sp1 + sql2000 这样可以通过:
var q = from t in this.erpDb.exp_t_detail
where t.exportdate >= this.dateTimePicker1.Value.Date && t.exportdate < dateEnd
orderby t.dtl_no
select new
{
dtl_no = t.dtl_no.Trim(),
dtl_date = t.exportdate.Value,
client_id = (from c in erpDb.exp_t_client where c.client_id == t.client_id select c.client_shortname.Trim()).FirstOrDefault(),
amount = erpDb.exp_t_detail_bggoods.Where(s => s.dtl_no == t.dtl_no && s.bgcomp_id == 415527 && (s.amt ?? 0) > 0).Sum(s => s.amt??0), //NND,这样子报sql执行错误
};
但同样的语句在LinqPad中执行通过!

不得以amount子句改成这样子:
amount = (erpDb.exp_t_detail_bggoods.Where(s => s.dtl_no == t.dtl_no && s.bgcomp_id == 415527 && (s.amt ?? 0) > 0).Sum(s => s.amt)) ?? 0


大家也碰上过这类莫名其妙的问题?
...全文
61 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yezie 2009-07-22
  • 打赏
  • 举报
回复
sp1后的linq不允许Sum(s => s.amt??0)了
heguo 2009-07-15
  • 打赏
  • 举报
回复
....这样通过:

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧