C# 将此SQL查询转换为LINQ

C# 将此SQL查询转换为LINQ,c#,sql-server,linq,C#,Sql Server,Linq,我在SQL Server中编写了一个SQL查询,但我不知道如何在其中一个电子邮件列上执行分组 选择tblEmailEvents.dtmeEvent, tblSentEmails.strEmailSendID, tblSentEmails.strSubject, 将(tblRecipients.lngreciientNo)计算为收件人, MIN(tblRecipients.strEmailAddress)作为电子邮件地址 从Tblemail事件 tblEmailEvents.strEmailSen

我在SQL Server中编写了一个SQL查询,但我不知道如何在其中一个电子邮件列上执行
分组

选择tblEmailEvents.dtmeEvent,
tblSentEmails.strEmailSendID,
tblSentEmails.strSubject,
将(tblRecipients.lngreciientNo)计算为收件人,
MIN(tblRecipients.strEmailAddress)作为电子邮件地址
从Tblemail事件
tblEmailEvents.strEmailSendID=tblSentEmails.strEmailSendID上的内部联接tblSentEmails
tblSentEmails.strEmailSendID=tblRecipients.strEmailSendID上的内部联接tblRecipients
按tblSentEmails.strEmailSendID、tblSentEmails.strSubject、tblEmailEvents.dtmEvent分组
按tblEmailEvents.dtmEvent DESC订购
这就是我到目前为止想到的:

var query = from mails in this._session.Query<tblSentEmails>()
            join events in this._session.Query<tblEmailEvents>() on mails.strEmailSendID equals events.strEmailSendID
            join recipients in this._session.Query<tblRecipients>() on mails.strEmailSendID equals recipients.strEmailSendID
            where mails.UserId == currentUser.Id
            where (events.dtmEvent >= dtmTimeFrame.AddSeconds(1))
            where events.strType != "Sent"
            orderby events.dtmEvent descending
            //select new
            //       {
            //           Date = events.dtmEvent.ToString("yyyy-MM-ddTHH:mm:ss"),
            //           Type = events.strType,
            //           Subject = mails.strSubject,
            //           Recipients = recipients.strEmailAddress
            //       };
            select new
                   {
                       Date = events.dtmEvent.ToString("s"),
                       Type = events.strType,
                       Subject = mails.strSubject,
                       Recipients = recipients.strEmailAddress
                   };
var query=来自此会话中的邮件。\u session.query()
在Mail.strEmailSendID等于events.strEmailSendID上加入此中的事件。\u session.Query()
在此邮件上加入收件人。\u session.Query()。strEmailSendID等于recipients.strEmailSendID
其中mails.UserId==currentUser.Id
其中(events.dtmEvent>=dtmTimeFrame.AddSeconds(1))
where events.strType!=“已发送”
orderby events.dtmEvent降序
//选择新的
//       {
//日期=events.dtmEvent.ToString(“yyyy-MM-ddTHH:MM:ss”),
//Type=events.strType,
//主题=mails.strSubject,
//Recipients=Recipients.strEmailAddress
//       };
选择新的
{
日期=events.dtmEvent.ToString(“s”),
Type=events.strType,
主题=mails.strSubject,
Recipients=Recipients.strEmailAddress
};
我需要一些帮助将
分组按
排序,因为我现在很迷路(这里不是一个很好的SQL人员)


谢谢。

请看一下。这对你会有帮助的

var V = (from State in ST1.State_Master
                group State by State.CountryID into temp
                select new
                {
                   T1 = temp.Key.Value,
                   T2 = temp
                 }).ToList();

如果你的问题得到解决,请告诉我你的问题不完全是这样的,但我确实设法解决了。谢谢