2

プロジェクト ASP.NET MVC 4 の Castle ActiveRecord のバージョンをバージョン 2.1.2 から 3.0.0 に移行することにしました。NHibernate 2.1.2 のバージョンもバージョン 3.1.0 に更新されました。以下の例のように、私のプロジェクトには ActiveRecordLinq を使用したクエリがいくつかあります (Castle.ActiveRecord.Framework への参照を更新する必要がありました)。

public IList <City> ReturnCities()
{
    IList <City> units = (from u in ActiveRecordLinq.AsQueryable<City>()
                          where (u.Id <= 52 || u.Id.Equals(900))
                          select u).ToList<City>();
    return units;
}

何が起こるかというと、更新が次の例外の生成を開始した後です。

タイプ 'System.NotSupportedException' の例外が NHibernate.dll で発生しましたが、ユーザー コードで処理されませんでした

追加情報: Boolean Equals (Int32)

「Equals」を「==」に置き換えるとクエリは機能しますが、Castle ActiveRecord のバージョン 2.1.2 では「Equals」は通常機能します。

「Equals」プロジェクトを置き換えることなく、この問題を回避する方法について助けが必要です。

4

1 に答える 1

0

そのバグの解決策があるかもしれません...それがあなたのケースに当てはまる場合は、https://nhibernate.jira.com/browse/NH-3129を参照してください。

問題は、 NH 3.3.3 と互換性のあるActiveRecordライブラリが見つからないことです。

于 2015-04-21T12:39:49.763 に答える