2011-10-19 5 views
1

NHibernateでは、テーブルをマッピングすることができますが、 "動的モデル"のためのクラスは作成しません。これらは、Hashtableインスタンスとして返されます。動的モデルのタイプを決定する

イベントリスナー、たとえばIPreDeleteEventListenerを接続すると、PreDeleteEventsを受信できます。これらは持っている:

  • オブジェクト[] DeletedState
  • オブジェクトエンティティ
  • オブジェクトID
  • IEntityPersister存続
  • IEventSourceセッション

は私がの型を取得するためにここにない方法を参照してくださいませんオブジェクト。具体的には、<nh:class>entity-nameが必要です(ただし、tableも素晴らしいでしょう)。

これを取得する方法があるように思われるが、私はそれを見ていないだけだ。エンティティにイベントが発生し、ハッシュテーブルとIDが渡されたが、どのタイプか分かりません。

いくつかの方法がありますか?あるいは、誰もが使用可能な回避策を考えることができますか?

答えて

2

辞書/ハッシュテーブル自体の$type$キーを使用してエンティティ名を取得できます。

テーブル名のような細かい詳細を取得するには、実行時のNHibernate設定(エンティティ名の値を参照)でそれらを見つける必要があるでしょう。

関連する問題