1

1回のクエリで128を超えるレコードを取得できず、.Take(1024)を使用すると、これを1024に拡張できることはわかっていますが、サンプルデータベースのこのコードに新しい問題があります。

var albumCount = session.Query<Album>().Count();
Console.WriteLine(albumCount);          // 246 as expected?!?

var somemoredata = session.Query<Album>();
Console.WriteLine(somemoredata.Count());    // 246 but it sould be 128
int cnt = 1;
foreach (var album in somemoredata)
{
   Console.WriteLine(cnt++.ToString() + " " + album.Id);  // repeats 128 counts
}

どうすればいいの?somemoredataの数は246ですが、foreachは128行を書き込みますか?!?

エラーはどこにありますか?

4

1 に答える 1

2

Takeデフォルトの保存原則の一部であるページングを実行しています。ただしCount、そのクエリのドキュメントの実際の数を常に指定する必要があります。

これにより、次のことができるようになります。

  1. 表示されたデータが単なる情報の一部であることを示す表示を表示します。(Xの1ページ目)。
  2. 必要に応じて、ページングを実行する必要があることをお知らせください。
于 2012-05-16T12:19:00.820 に答える