C# sql到linq转换的帮助
有人能帮我把sql查询转换成LINQ吗?我对LINQ很在行,但这有点多,我不能在这里下载linqpadC# sql到linq转换的帮助,c#,linq,C#,Linq,有人能帮我把sql查询转换成LINQ吗?我对LINQ很在行,但这有点多,我不能在这里下载linqpad select t.*, l.* from email_templates t left join (select id as email_id, sent_at, sent_by from email_log where id = (select max
select
t.*,
l.*
from
email_templates t
left join
(select
id as email_id,
sent_at,
sent_by
from
email_log
where
id = (select max(id)
from email_log
where as_at_date = '20100618'
group by template_id )
)l
on t.id = v.template_id
顺便说一句,我理解你的疑问;你需要这样的东西
var maxId = (from e in email_log
where e.as_at_date < new DateTime(2010, 06, 18)
group e by e.template_id into grouped
select grouped.Max(a => a.id)).First();
var selectedEmailLog = from e in email_log
where e.id == maxId
select new
{
email_id = e.id,
e.sent_at,
e.sent_by,
e.template_id,
};
var seletedRows = from t in email_templates
join l in selectedEmailLog
on t.id equals l.template_id into tls
from tl in tls
select new
{
t.id,
tl.email_id,
tl.sent_at,
tl.sent_by,
};
var maxId=(来自电子邮件日志中的e)
其中e.as_在_日期<新日期时间(2010,06,18)
按e.template\u id将e分组为分组
选择grouped.Max(a=>a.id)).First();
var selectedEmailLog=来自电子邮件日志中的电子邮件
其中e.id==maxId
选择新的
{
email_id=e.id,
e、 发送至,
e、 由…发送,
e、 模板id,
};
var seletedRows=来自电子邮件模板中的t
在selectedEmailLog中加入l
t.id等于tls中的l.template_id
从tl到tls
选择新的
{
t、 身份证,
tl.email_id,
tl.发送至,
tl.由您发送,
};
。。。LINQ是可组合的,因此您可以将查询分解为可管理的部分。将查询分解为更小的部分将使其更容易理解。还可以返回复杂对象,而不是从数据库创建平面记录渲染