0

Visual Studio 2008 の内部開発 Web サーバー (実行/コンパイル ボタン) を介して実行するローカル Web サイトがあります。

その Web サイトのページで参照され、Web サイトの「bin」フォルダー内にある外部ライブラリがあります。

最近、そのライブラリ内のクラスのプロパティ名を変更し (「ValidFrom」から「VisibleFrom」に名前を変更)、その dll を再コンパイルし、bin フォルダー内の元の dll を上書きしました。

このクラスは FluentNHibernate でマッピングされています。また、マッピングを変更し、ライブラリを再コンパイル / 再デプロイしました。

サイトを実行してライブラリが使用されているページに移動しようとすると、FluentNHibernate の構成呼び出しに関連する get_ValidFromメソッドのMethodNotFound例外が発生します。これはget_VisibleFromになるはずです!

今、NHibernate SessionProvider を再構成して、呼び出しごとに NHibernate の新しい構成を生成し、以前のように Http セッション エンティティから取得しないようにしました。

ただし、まだ例外が発生しています。その後、Temporary ASP.NET フォルダーのコンテンツを削除しましたが、まだエラーが発生しています。

FluentNHibernate を使用する場合、NHibernate 用に生成されたスキーマはどこに保存されますか?

これがどういうわけかキャッシュできる他の場所を知っている人はいますか?

ありがとう

4

1 に答える 1

0

FNH はスキーマをキャッシュしません。スキーマは を呼び出したときにオンザフライで生成され、スキーマはを構築するために使用される NHibernate オブジェクトにFluently.Configure()直接渡されます。ConfigurationISessionFactory

コンパイルされたすべてのオブジェクト/ライブラリ/実行可能ファイルをクリアし、ライブラリを使用するすべてのプロジェクトからライブラリへの参照を削除し、再度追加してから、すべてを再コンパイルしてみてください。また、このプロパティを参照している、または古い名前で参照されている可能性がある「魔法の文字列」について、すべてのコードを確認してください。

それでも問題が解決しない場合は、スタック トレースを参照して、何がどこから呼び出されているかを把握すると役立つ場合があります。

于 2009-06-05T18:21:03.583 に答える