Перевод SQL в синтаксис LinQ

#c# #entity-framework #linq

#c# #entity-framework #linq

Вопрос:

Ниже приведен мой предполагаемый SQL-запрос, и мне трудно перевести это в синтаксис метода LinQ

 select top(2) MerchantSubcriptionName,count(*) as occurence 
from MerchantSubscription 
group by MerchantSubcriptionName 
order by occurence desc
 

Я должен выбрать 2 лучших подписки, на которые подписано больше всего людей

Ответ №1:

Просто попробуй это:

 public class Subscription 
{
    public string MerchantSubscriptionName { get; set; }
    public int Count { get; set; }
}
 
 var list = _dbContext.MerchantSubscription.GroupBy(x => x.MerchantSubcriptionName)
    .Select(x => new Subscription { MerchantSubscriptionName = x.Key, Count = x.Count() })
    .OrderByDescending(x => x.Count)
    .Take(2)
    .ToList();