私はEntity Framework Code Firstを使用していて、小さなロードブロックを実行していました。私が呼ぶとき、しかしエンティティフレームワークコードファーストIQueryable
public class History
{
public Guid Id { get; set; }
public virtual Person Owner { get; set; }
public DateTime OnDate { get; set; }
}
:
public class Person
{
public Guid Id { get; set; }
public virtual ICollection<History> History { get; set; }
}
、そのように定義したクラス "歴史":私はそのように定義クラス "人" を持っている
IEnumerable<History> results = person.History
.OrderBy(h => h.OnDate)
.Take(50)
.ToArray();
それが表示されますその人のためにすべての歴史を引っ張って、それをメモリに注文する。私が逃しているものについての推奨事項はありますか?
ありがとうございます!
あなたはどのような動作を期待していましたか?結果を50レコードに限定することはできませんか? –
私は期待された動作がデータベースでそれを注文することだと思います –
私はそれが注文を送信し、サーバーに制限することを期待していたので、SQLサーバーは注文と制限を行いました。代わりに、すべての履歴をメモリに保存し、その連絡先のすべての30,000以上の要素を確認してから、メモリ内で注文と制限を行います。 – Terry