2011-07-28 16 views
0

私は複合(プリズム)WPFアプリケーションを構築しています。私はいくつかのコアelemetsを構築することができた:例えば、フォルダからのモジュール発見。 また、データを保持するためにNHibernate(Fluent)も使用しています。私はモジュールを分けることができたので、すべてが独自のモデルとマッピングを持ち、Prismがモジュールを追加すると、nhの設定にもマッピングが追加されます。NHibernate複合アプリケーション - モジュールの起動レコード

私がしたいのは、一度も起動されていないモジュールが有効になっているときに、いくつかの起動レコードを挿入することです。 例:

私が初めてアプリケーションを起動すると、データベースが存在しないことが検出され、1つの構成テーブルのみが作成されます。この表には、有効になっているモジュールに関する情報が含まれています。その後、管理者はUIを使用してどのモジュールを有効にするかを設定できます。次にアプリケーションが起動すると、新しく有効になったモジュールから新しいタブが検出され、NH UpdateSchemaを使用してテーブルが作成されます。私がしたいのは、このテーブル作成でいくつかのスタートアップレコードを挿入することです。 これはNHイベント(NH documentation on events)によって行われるべきだと思います。 'PostTableCreateEvent'のようなものは素晴らしく、このようなものは見つけられません。

あなたのいずれかがこのようなことをしましたか?

答えて

1

イベントはセッションでトリガーされますが、Schemaexport Doestはセッションファクトリまたはセッションを取るため、そこにフックできません。このためには、FNHがサポートしていないので、<database-object><create>INSERT ...</create><drop></drop></database-object>がxmlマッピングまたはplain SQLにあります。<database-object> afaik。

オプション1:モジュールは私のいずれかのテーブルの作成(後に追加の手順(SQL)を取ることができるように:<database-object>

オプション2とNH-設定とembedマッピングの作成に堪能とのhbm.xmlマッピングを追加私は独自のクラス/メソッドでスキーマをラップしました/ schemaModeによって処理されていないデータベース自体も作成し、schemaversionやconfigsのようなカスタムデータを挿入します)

+0

おかげでFiro、私は2番目のオプション – bodziec

関連する問題