私は次のことをやっていると信じて:Entity Framework 4:.Take(10)が20レコードを返す原因は何ですか?
var myQuery = Products.Where(p => p.deptid = 3);
var myCount = Products.Count();
var myResult = myQuery.OrderBy(p => p.deptname).Skip(10).Take(10);
//then return an object with a count property and a List<Product> property.
時には、これはダブルテイク量を返します。
私のソリューションには、リポジトリとサービスレイヤという2つのレイヤがあります。注文したり、スキップしたり、リポジトリに入れたりしていないと確信しています。これがサービス層コードです。 10レコードを取ったときにmyResultに10以上のレコードが存在する原因は何ですか?
カウントプロパティとリストプロパティを持つオブジェクトを返す方法を示すかもしれません。 –
「時々」とはどういう意味ですか?この場合、商品リストには何個の商品が入っていますか?それ以外の場合はいくつですか?この問題の原因となるいくつかのコードがあるはずです。これを見るために '.ToList()'をTake(10) –
の末尾に追加すると、何か問題が発生しています。まず、 '.Take(10)'はありますが、 '.ToList()'は最後にありません。だから 'myResult'は' IQueryable 'です。具体的なコレクションにクエリを具体化するコードを表示します。 –
RPM1984