[英]What would be the linq equivalent to the below sql?
如何將此 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 將我的答案基於實體框架:
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()
這是未經測試的,並假設了很多。 純粹的暗中刺傷。
編輯:您必須從分組中提取電子郵件。
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;
我希望這些信息對您有所幫助 或者您可以查看此鏈接在此處輸入鏈接描述
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.