2016-12-12 8 views
2

私は.NET Core 1.1、EF Core 1.1を使用しています。指定されたIDを持つアルファベット順の行を取得する

私はCategoryのページングを行うためにクエリを実行しているオブジェクトがあります。私の関数は、フロントエンドが解析した最後のオブジェクトのIDを受け取り、次のXオブジェクトを取得する必要があります。私はアルファベット順にソートしていますが、オブジェクトの後にアルファベット順に指定されたIDを持つオブジェクトを取得する方法がわかりません。

たとえば、のは、私は私のDBでこれを持っているとしましょう:

ID | Name 
---|----- 
1 | Sports 
2 | Music 
3 | Books 
4 | TV Shows 

を簡単にするために、我々は、私は1ページあたり二つの結果が欲しいと言うでしょう。私のフロントエンドはID 2を渡して、Musicがサイトが表示している最新のオブジェクトであることを示し、次の2つをアルファベット順に表示します。だから、名前がアルファベット順に次の2つあるので、ID 1と4のオブジェクトをその順に返す必要があります。私がID3に合格した場合、結果は2と1になります。

どのようにしてEFでこれを達成できますか?私はこれが非常にシンプルでなければならないと感じますが、私はそれを理解できません。

+0

Downvoteとクローズアップ投票、説明してください。 – vaindil

答えて

1

Nameが一意であると仮定すると、あなたは、2つのクエリが必要になります:1を通過したIDための対応Nameを取得した後、第2のクエリパラメータとしてそれを使用するために、そして、より大きなNameで項目を選択し注文して撮ります希望のカウント:

int lastId = ...; 
var lastName = db.Table.Where(e => e.ID == lastId).Select(e => e.Name).FirstOrDefault(); 
var result = db.Table 
    .Where(e => string.Compare(e.Name, lastName) > 0) 
    .OrderBy(e => e.Name) 
    .Take(2); 
+1

これは素晴らしい作品です、ありがとうございました! – vaindil

関連する問題