-3

このクエリ構文を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();

どちらのアプローチが優れていますか? 私はこのクエリ アプローチの方が気に入っていますが、あまりにも肥大化しているように見えるメソッド構文を使用するように求められました。

4

1 に答える 1

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();
于 2014-10-08T07:02:05.250 に答える