首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

LINQ 中 CASE的有关问题

2013-09-09 
LINQ 中 CASE的问题本帖最后由 ziybb 于 2013-09-08 21:38:14 编辑var obj from t in context.Table2sel

LINQ 中 CASE的问题
本帖最后由 ziybb 于 2013-09-08 21:38:14 编辑

var obj = from t in context.Table2
                      select new
                      {
                          t.TYPE,
                          M = (t.TYPE == "0" ? context.Table2.Select(a => a.MONEY).Sum() : t.TYPE == "1" ? context.Table2.Select(b => b.MONEY).Sum() : 0)
                      };

我想根据TYPE字段值的不同计算出MONEY的和,但是这样写会生成CROSS JOIN连接。我想知道应该怎么写才正确? linq
[解决办法]
var obj = from t in context.Table2
          let temp=context.Table2.Sum(a => a.MONEY)
                      select new
                      {
                          t.TYPE,
                          M = (t.TYPE == "0" ? temp : t.TYPE == "1" ? temp : 0)
                      };

[解决办法]
var obj = from t in context.Table2


          group t by t.Type into g
          select new { Type = g.Key, M = g.Sum(x => x.Money) };

热点排行