C# linq等价于下面的sql是什么?

C# linq等价于下面的sql是什么?,c#,linq,C#,Linq,如何将此sql查询转换为等效的linq?我已经包括了我的模型。我首先使用数据库中的EF代码。我是c#编程新手,所以我可能不知道我的问题中应该包括什么。多谢各位 SELECT RestaurantFranchiseeEmail.Email FROM RestaurantVersions INNER JOIN RestaurantFranchiseeEmail ON RestaurantVersions.Restaura

如何将此sql查询转换为等效的linq?我已经包括了我的模型。我首先使用数据库中的EF代码。我是c#编程新手,所以我可能不知道我的问题中应该包括什么。多谢各位

SELECT        RestaurantFranchiseeEmail.Email
FROM            RestaurantVersions INNER JOIN
                     RestaurantFranchiseeEmail ON 
RestaurantVersions.RestaurantId = RestaurantFranchiseeEmail.RestaurantId
WHERE        (RestaurantVersions.VersionId = N'M1')
GROUP BY RestaurantFranchiseeEmail.Email, RestaurantVersions.VersionId
模型

 namespace 
    {
        using System.ComponentModel.DataAnnotations;

        public class RestaurantVersion
    {
        public int Id { get; set; }

        [StringLength(50)]
        public string RestaurantId { get; set; }

        [StringLength(150)]
        public string Franchisee { get; set; }

        [StringLength(150)]
        public string VersionId { get; set; }
    }
}

   namespace 
    {
        using System.ComponentModel.DataAnnotations;
        using System.ComponentModel.DataAnnotations.Schema;

    [Table("RestaurantFranchiseeEmail")]
    public class RestaurantFranchiseeEmail
    {
        public int Id { get; set; }

        [StringLength(50)]
        public string RestaurantId { get; set; }

        [StringLength(150)]
        public string Franchisee { get; set; }

        [StringLength(150)]
        public string Email { get; set; }
    }
}
请尝试以下代码:

from s in RestaurantVersions 
          join c in RestaurantFranchiseeEmail on s.RestaurantId equals c.RestaurantId
         where c.VersionId == "M1"
           group c by s.Email && c.VersionId
        select c.Email;

由于这个问题没有太多细节,我将使用ViewModels根据Entity Framework得出答案:

var result=\u context.RestaurantVersions
.其中(restaurantVersion=>restaurantVersion.VersionId==“M1”)
。选择(restaurantVersion=>new RestaurantVersionViewModel
{
VersionId=restaurantVersion.VersionId,
RestaurantFanchiseeeMailViewModel=新的RestaurantFanchiseeeMailViewModel
{
Email=restaurantVersion.RestaurantFranchiseeEmail.Email
}
})
.GroupBy(restaurantVersionViewModel=>新建
{ 
restaurantVersionViewModel.VersionId,
restaurantVersionViewModel.RestaurantFanchiseeeMailViewModel.Email
})
托利斯先生()
这是未经测试的,并假设了很多。纯粹的暗中刺杀

编辑:您必须从分组中取出电子邮件

 var  query = from s in RestaurantVersions 
              join q in RestaurantFranchiseeEmail 
              on s.RestaurantId = 
                 q.RestaurantId
              where s.VersionId = N'M1'
              group q by q.Email
              select  q.Email;
我希望这些信息能对你有所帮助 或者您可以查看此链接

使用linqpad。它有时会帮助您进行等效的查询,您可以练习查询,并在sqlproblem中查看最终结果。也许使用my会对您有所帮助。谢谢您!