2017-02-21 3 views
0

Это всего лишь вопрос исследования. Но это можно преобразовать лямбда ехр для запроса синтаксис и как это сделатьНужно знать, может ли эта лямбда быть преобразована в синтаксис LINQ и как

dbContext.Items.GroupBy(x => x.MobileNo) 
         .Select(x => x.OrderByDescending(y => y.CreatedDate).First()); 

Синтаксис запросов выборки:

// The below one does not work as expected 
    from x in dbContext.Items 
    group x by x.MobileNo into groupedResult 
    select groupedResult; 
+0

Просьба уточнить, что вы ожидали, и что на самом деле происходит. – Equalsk

+6

Собственное имя - это ** синтаксис запроса ** (вторая версия), а не ** синтаксис метода ** (ваша первая версия). Нет такой вещи, как «старый синтаксис». –

+0

@Equalsk - Что я хочу - я хочу группировать элементы по мобильному номеру и получать с самой последней датой из сгруппированного результата. Выражение лямбда работает так, как ожидалось. Я просто хочу знать, как это сделать, используя синтаксис запроса. –

ответ

2

Вы можете смешать query- and method syntax:

var query = from item in dbContext.Items 
      orderby item.CreatedDate descending 
      group item by item.MobileNo into numberGroup 
      select numberGroup.First(); 

Не все LINQ методы поддерживаются в синтаксисе запроса, который переводится на вызовы методов.

+1

@Default: вы правы, старый запрос vb.net возвратил только один элемент. Я отредактировал его. –

+0

hm .. зачем писать версию vb.net? Он не запрашивается, и вопрос помечен как C#, а не .NET. Не сказать, что это неправильно, просто интересно, почему – Default

+0

@Default: больше не имеет смысла, потому что теперь C# и VB.NET равны –

Смежные вопросы