POCO ドメイン オブジェクトを渡す必要があります (熱心に読み込まれます)。Entity Framework と NHibernate の両方を分析しましたが、解決策が見つかりません!
基礎となる SQL とクエリを NHibernate で分析したところ、
ISession.CreateQuery (string HQL).SetMaxResults(N)
SQL には実装されていませんTOP Nが、常にすべてのデータを .NET にダウンロードしてからサブセットを取得します (非常にばかげています)。
巨大なテーブルに複雑なクエリを送信するにはどうすればよいでしょうか?
ICreteria( SetMaxResultsSQL で実装) とIQueryOver( SQLTake()では impl) は柔軟性がありません。たとえば、熱心な読み込みは左結合でのみ可能です。また、カスタム サブクエリ、トップ、フィルタリング、オーダー バイなどもあります。明らかに、SQL の柔軟性ははるかに高いレベルにあります。
Entity Framework は流動的で、魔法を実現しているように見えますが、SOO-O DAMN SLOW!
私が考えることができる最も柔軟な熱心な読み込みは、1 週間の作業の後、プリロードされたandTOP Nによって実装されたHQLです。IListSetParameterList
より良い解決策はありますか?