3

私はFluent NHibernateを使用して既存のデータベースをマップしています。この理由のために、私のためのオートマウントは選択肢ではありません。Fluent NHibernateに自動マッピングせずに特定のプロパティを無視するようにするにはどうすればよいですか?

NHibernateに特定のプロパティをマップしないように指示する方法を教えてください。それらの多くは読み取り専用であり、他のものは他の理由で永続化する必要はありません。

私はVB.Netでこれを書いています。

私は、一般的なエラーメッセージが出ます:私は意図的に行っていない 「は、以下のタイプがプロキシ として使用することはできません... 『公開/仮想保護』されなければならないか 『保護された内部仮想』」

を私のオブジェクトは、NHibernateがそれらに触れることを望まないので、オーバーライド可能です(C#の仮想に相当)。

どうすればこの問題を解決できますか?

+0

私はそれほどハッキングされていない答えに興味がありますが、私はこの記事で回避策を見つけました:http://stackoverflow.com/questions/907576/how-to-tell-fluent-nhibernate-not-to- map-a-class-property 答えとしてマークされた質問は、クラスマップではなく、オートマッピングにのみ適用されます。コメントを慎重に読んでいれば、下にはVirtual(上書き可能)クラスの作成だけを示しています。 最初はこれは奇妙に思えますが、最後のコメントには、そのプロパティにマップしない限り、悪影響がないことに言及しています。単に使用しないプロキシを作成するだけです。 – Origin

+2

[Here](http://stackoverflow.com/questions/2278110/nhibernate-exception-method-add-should-be-public-protected-virtual-or-protec)は、なぜあなたがすべてを作る必要があるかについての良い答えですメソッド(ともちろんプロパティ)は仮想です。これはNHibernateについてであり、FluentNHibernateについてではありません。 –

答えて

6

NHibernateがマッピングされていないプロパティを含む動的なプロキシを作成するためには、すべてのプロパティとメソッドをオーバーライドする必要があります。これは、NHibernateがあなたの読み取り専用プロパティをマッピングしていることを意味するものではなく、クラスのプロキシを生成できるようにオーバーライドする必要があります。 This articleは要件を説明しています。

+0

お返事ありがとうございます。私はそれ以来他の誰かにもこのことを伝えていましたが、ここでそれを更新することを忘れました。 – Origin

+0

これは、私がオーバーライドしたり変更したくないプロパティをマップしていないので、非常に残念です。答えは助けてくれました、ありがとう。 –

関連する問題