Member 13810496 Ответов: 1

Нужен SQL для linq C# код для ниже SQL


Нужен код C# Linq для ниже SQL

SELECT a.col1, ROW_NUMBER() OVER (PARTITION BY a.col4 ORDER BY CASE WHEN a.col2 is not null then '1/1/1900' ELSE a.modifiedon  END, a.modifiedon ASC) AS Number
    FROM table1  a
	where col3 = 'ABC'


Что я уже пробовал:

Пытался использовать операторы linq group и orderby, но ничего не вышло

1 Ответов

Рейтинг:
1

Maciej Los

Попробовать это:

var data = context.Table1
    .Where(x=x.Col3=="ABC")
    .GroupBy(x=>x.Col4)
    .SelectMany(grp=>grp
        .OrderBy(x => x.Col2!=null ? new DateTime(1900, 1, 1) : x.ModifiedOn)
        .Select((j, i) => new
        {
            Col1 = j.Col1,
            Number = i + 1
         }));


Примечание: написано прямо из моей головы, так что оно может содержать орфографические ошибки.