1

次のように、Linq を NH に使用する多くの例を目にします。

ISession session = getSession();
    var query = from conference in session.Linq<Conference>()

しかし、私のコードでは ISession に .Linq はありません。

次の使用では十分ではありませんか?

using NHibernate.Linq;
4

1 に答える 1

4

正しい名前空間をインポートしていますが、ISessionインターフェイスで間違ったメソッドを使用しています。の代わりにISession.Linq<T>()、 を使用しますISession.Query<T>()

ISession session = getSession();
var query = from conference in session.Query<Conference>()

ISession.Linq<T>()Linq 2 NHibernateの一部であり、別のプロジェクトであり、一時的な解決策でした。Criteria API に基づいていました。現在は廃止されています。

新しい NHibernate Linq プロバイダーは、メインの NHibernate アセンブリの一部になりました (NH 3.0 以降)。HQL に基づいており、より多くの機能を備えています。

于 2012-09-07T07:34:03.107 に答える