0

http://nhcontrib.svn.sourceforge.net/viewvc/nhcontrib/trunk/src/からソース コードをダウンロードし、NHibernate の 3.2 バージョンへの参照を変更しました。コンパイルすると、次のエラー/警告メッセージが表示されました

  • エラー 1 'NHibernate.Search.Impl.FullTextSessionImpl' はインターフェイス メンバー 'NHibernate.ISession.QueryOver(string, System.Linq.Expressions.Expression>)' を実装していません
  • エラー 2 'NHibernate.Search.Impl.FullTextSessionImpl' はインターフェイス メンバー 'NHibernate.ISession.QueryOver(string)' を実装していません
  • エラー 3 'NHibernate.Search.Impl.FullTextSessionImpl' はインターフェース メンバー 'NHibernate.ISession.Merge(string, T)' を実装していません
  • エラー 4 'NHibernate.Search.Impl.FullTextSessionImpl' はインターフェイス メンバー 'NHibernate.ISession.Merge(T)' を実装していません
  • 警告 5 メンバー 'NHibernate.Search.Filter.ChainedFilter.Bits(Lucene.Net.Index.IndexReader)' は、廃止されたメンバー 'Lucene.Net.Search.Filter.Bits(Lucene.Net.Index.IndexReader)' をオーバーライドします。Obsolete 属性を「NHibernate.Search.Filter.ChainedFilter.Bits(Lucene.Net.Index.IndexReader)」に追加します。

3.2 と互換性のある NHibernate Search を取得しようとした人はいますか?

4

1 に答える 1

0

Nhibernate.Search のソース コードをダウンロードして、最新バージョンの NHibernate (3.2) と Lucene.Net (2.9.4) に対してコンパイルしようとしました。広範囲にテストしたわけではありませんが、今のところすべてが機能しているようです。

.Net 4フレームワークには競合を引き起こすネイティブクラスが含まれているため、言及したメソッドをマップしsession.[method_name]()(以下を参照)、へのすべての参照を置き換えるISet<>だけです。Iesi.Collections.Generic.ISet<ISet<>


FullTextSessionImplこのコードをクラスに追加します。

#region ISession Members


    public T Merge<T>(string entityName, T entity) where T : class
    {
        return session.Merge<T>(entityName, entity);

    }

    public T Merge<T>(T entity) where T : class
    {
        return session.Merge<T>(entity);

    }

    public IQueryOver<T, T> QueryOver<T>(string entityName, Expression<Func<T>> alias) where T : class
    {
        return session.QueryOver<T>(entityName, alias);

    }

    public IQueryOver<T, T> QueryOver<T>(string entityName) where T : class
    {
        return session.QueryOver<T>(entityName);

    }

    #endregion

それでも問題が解決しない場合は、コンパイル済みのバイナリをお送りします。

于 2012-01-26T20:07:01.570 に答える