public class EngineInfo
{
public int Id{get;set;}
public int? AircraftId { get; set; }
public string SerialNumber { get; set; }
public int Position { get; set; }
public string RegNumber { get; set; }
}
// 上記のモデルを使用するコードは次のとおりです。このモデルには 17,000 のドキュメントがあります
ravenSession.Store(new AuthorizationUser
{
Id = "Authorization/Users/1",
Name = "user-1",
Permissions =
{
new OperationPermission
{
Allow = true,
Operation = "EngineInfos/View",
Tags = "Company/100"
}
}
});
1. var query = ravenSession.Query<EngineInfo>();
// query.Count() をログに記録すると、すべてのドキュメント数が表示されます。つまり、17000 です。これは、前のステートメントで設定した承認を無視しています。上記のステートメントに where 句を追加すると機能し、正しいカウントが表示されます。しかし、ユーザーが権限を持っているすべてのドキュメントを取得したいと考えています。
2. var query = ravenSession.Query<EngineInfo>().ToList();
これで、承認を考慮して正しいカウントが得られます。しかし問題は、Take(x) に言及しない限り、すべての結果が返されないことです。で試しました
RavenQueryStatistics queryStats;
query.Statistics(out queryStats);
queryStats.TotalResults
私はまだ承認結果を得ることができませんでした。私はすべてのカウントを取得します。
すべてのレコードをロードせずにクエリ結果の TotalCount を見つける方法を教えてください。
私の要件は、すべてのエンジンを検索可能な ExtJS ページング グリッドに表示することです。ページ数を計算して表示するには、表示するレコードの総数を知る必要があります(ページ数は固定です)。