linq преобразовать синтаксис запроса в синтаксис метода
Как я могу преобразовать этот синтаксис запроса в синтаксис метода в linq:
return (from x in db.Table1
join y in db.Table1 on x.ID equals y.ID - 1
where Convert.ToInt32(y.ID) >= Convert.ToInt32(x.ID)
orderby x.Name
select x).Distinct();
Какой подход лучше? Мне больше нравится этот подход к запросу, но меня попросили работать с синтаксисом метода, который мне кажется слишком раздутым.
Заранее спасибо, Лазиале
1 ответ
Решение
var results = db.Table1.Join
(
db.Table1,
x=>x.ID,
x=>x.ID - 1,
(x,y)=>new{OuterTable = x, xid = x.ID, yid = y.ID}
)
.Where(x=>Convert.ToInt32(x.yid ) >= Convert.ToInt32(x.xid))
.Select(x=>x.OuterTable)
.OrderBy(x=>x.Name)
.Distinct();