と私は自分のデータベースを照会するには、次のコードを使用しています:重複行ORDERBYを使用した場合、(スキップ)と(テイク)LINQ
private const int PAGE_SIZE = 10;
public static IList<Image> GetTopImagesForUser(String connectionString, int userID, int page)
{
dbDataContext db = new dbDataContext(connectionString);
var images = (from p in db.Images
where (p.SubmitterUserIndex == userID &&
p.URL != "none" &&
p.ThumbURL != "none")
orderby p.Rep descending
select p).Skip(page * PAGE_SIZE).Take(PAGE_SIZE);
/* snip */
return topImages;
}
私は0のページでこのコードを呼び出すと、私はそれが望むようにすべての作品 - 私はきれいに順序リスト、10結果、すべてが正しいです。
ページでこのコードを呼び出すと、ページ0の行は1ページ目になります。理由を理解することさえできません。私は重複行のために自分のデータベースをチェックしました。私はすべての行のURLとThumbURLが "none"でないことを確認しました。それも問題ではない。私はこのメソッドを呼び出すときに、ページが私が期待しているものであることを確認しました。それはいつも私が期待するものです。本当に私をバッフル何
は期待通りに完全に動作しますORDERBY句、第1の方法とは異なり、以下の方法で、ということです。
public static IList<Image> GetAllImagesForUser(String connectionString, int userID, int page)
{
dbDataContext db = new dbDataContext(connectionString);
var images = (from p in db.Images
where (p.SubmitterUserIndex == userID &&
p.URL != "none" &&
p.ThumbURL != "none")
orderby p.SubmitTime descending
select p).Skip(page * PAGE_SIZE).Take(PAGE_SIZE);
/* snip */
return allImages;
}
誰もこのようなものに遭遇しましたか?私の質問が私がしたいことをするために取るべき別のフォームがありますか?私は何が欠けているのかわからない。
これは良い質問です。最初にこの問題に遭遇したとき、それはちょっと心配です。 – DOK
それは心配だった!それは今でもずっと意味をなさない!ありがとう:-) –