首页新闻找找看学习计划

Linq子查询怎么写,高手进

0
悬赏园豆:100 [待解决问题]

promoter 主表
promoterhistory 操作历史表
需求:promoter 分页读取,且数据带上最新一条操作记录备注列,用原始sql写法如下。
认真求教

SELECT p.Id,p.UserName,
(SELECT h.Remark FROM promoterhistory h WHERE h.PromoterId=p.Id Order By Id Desc LIMIT 1) sku
FROM promoter p
LIMIT 10;

Jerry柯的主页 Jerry柯 | 菜鸟二级 | 园豆:496
提问于:2019-09-03 17:41
< >
分享
所有回答(2)
0

promoter.Select(t=>new{Id,UserName,Remark=promoterhistory.FirstOrDefault(g=>g.Id=t.Id).Remark}).Take(10)

花飘水流兮 | 园豆:10177 (专家六级) | 2019-09-03 18:05

你好,对应的linq语句可以怎么写

支持(0) 反对(0) Jerry柯 | 园豆:496 (菜鸟二级) | 2019-09-05 13:59
0
//所有的查询表达式都可以转成对应的点标记。反之,不是所有的点标记都可以转成查询表达式。
//点标记确实比查询表达式更加优雅

//Linq表达式
//查询表达式
var pp = from c in db.promoters select new {c.Id, c.UserName, db.promoterhistorys.FirstOrDefault(o => o.PromoterId == c.Id).Remark};
Console.WriteLine(pp.Skip(0 * 10).Take(10).ToList());

//Lambda表达式
//点标记
var queryable = db.promoters.Select(t => new {t.Id, t.UserName, db.promoterhistorys.FirstOrDefault(t2 => t2.Id == t.Id).Remark}).Skip(0 * 10).Take(10);
Console.WriteLine(queryable.ToList());
张朋举 | 园豆:1372 (小虾三级) | 2019-09-10 21:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册