我需要将此代码转换为linq查询。
下面的查询让我在MS SQL中更正了总数。
SELECT SUM(t1.itemPrice + t2.itemPrice) as TOTAL FROM table1 t1, table2 t2 WHERE r.userID = u.userID
我试图让这个相同的代码在linq查询中工作,所以我可以在我的项目MVC4中使用它。
我的尝试失败主要是b / c我还不熟悉Linq。这是:
- Linq--
var query = (from t1 in db.table1
join table2 in db.table2
on t1.userID equals t2.userID
select new { SUM (t2.itemPrice + t1.itemPrice) });
显然以上都行不通。有人可以帮忙吗?
答案 0 :(得分:2)
你非常接近。 Sum()
必须使用非Linq语法:
var query = (from t1 in db.table1
join table2 in db.table2
on t1.userID equals t2.userID
select t2.itemPrice + t1.itemPrice).Sum();
如果可能,sum操作仍将转换为SQL,因为您将调用IQueryable.Sum()
。
答案 1 :(得分:0)
另一个看似简单的解决方案是:
var query = table1.Join(table2, x=>x.userID, y=>y.userID, (x,y) => (x.itemPrice + y.itemPrice)).Sum();