Linq2Nibernate を使用する目的は、IQueryable を返し、式ツリーを構築することだと思いました。これが正しいかどうかはわかりません。
IQueryable を返さないのに、なぜ Linq2Nibernate を使用するのでしょうか?
それは他に何に使用されますか?
このトピックについてもう少し意見をいただければ幸いです
Linq2Nibernate を使用する目的は、IQueryable を返し、式ツリーを構築することだと思いました。これが正しいかどうかはわかりません。
IQueryable を返さないのに、なぜ Linq2Nibernate を使用するのでしょうか?
それは他に何に使用されますか?
このトピックについてもう少し意見をいただければ幸いです
NHibernate.Linqを使用して、HQLおよび条件APIクエリをLINQ式に置き換えることを計画しています。つまり、コードで(LINQ式として)クエリを生成し、それをNHibernate.LinqとNHibに渡して、データベースクエリに変換します。
参考までに、利用可能なアルファバージョンがあります。
Linq2Nibernate の使用を開始する予定ですが、まだ慣れていません。
Linq2Nibernate を使用したい理由は、基準を構築し、後でそれらを照会する際の優れた構文です。
これは簡単な例です。 http://ayende.com/Blog/archive/2007/03/16/Linq-for-NHibernate.aspx
IQueryable オブジェクトを返すリポジトリ パターンで Linq2Nhibernate を使用しています。ご存じのとおり、IQueryable は単なるクエリ定義であり、データベースにはまだ触れていません。
次に、ローカル要件がクエリに追加され、最後にオブジェクトまたはリストが具体化されます。
うまく機能しているようで、より高い抽象レイヤーで部分データに対する不要なデータベースクエリを防ぎます。
Linq2NHibernate とは何ですか? nhibernate の linq プロバイダーを実装しようとしたプロジェクトがいくつかありますが、すべてが完了する前に停止しました。
linq プロバイダーは、IQueryable を返す必要があります。または、それが linq のしくみであるため、IEnumerable を返す必要があります。既存のコードを再利用して、既に作成されたクエリに追加の演算子を埋め込むことができるため、IQueryable を返すと便利です (IQueryable を返す可能性のある ctx.Employee は既にクエリであるため)。