如何将此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; }
}
}
答案 0 :(得分:0)
尝试以下代码:
Lazy.Value
答案 1 :(得分:0)
由于该问题没有太多细节,我将使用ViewModels将答案基于Entity Framework:
var result = _context.RestaurantVersions
.Where(restaurantVersion => restaurantVersion.VersionId == "M1")
.Select(restaurantVersion => new RestaurantVersionViewModel
{
VersionId = restaurantVersion.VersionId,
RestaurantFranchiseeEmailViewModel = new RestaurantFranchiseeEmailViewModel
{
Email = restaurantVersion.RestaurantFranchiseeEmail.Email
}
})
.GroupBy(restaurantVersionViewModel => new
{
restaurantVersionViewModel.VersionId,
restaurantVersionViewModel.RestaurantFranchiseeEmailViewModel.Email
})
.ToList()
这是未经测试的,并且假设很多。黑暗中纯净的刺杀。
编辑:您必须从分组中提取电子邮件。
答案 2 :(得分:0)
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;
我希望这些信息对您有所帮助 或者您可以检查此链接 enter link description here