Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# sql到linq转换的帮助_C#_Linq - Fatal编程技术网

C# sql到linq转换的帮助

C# 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

有人能帮我把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(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是可组合的,因此您可以将查询分解为可管理的部分。将查询分解为更小的部分将使其更容易理解。还可以返回复杂对象,而不是从数据库创建平面记录渲染