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