2009-05-29 5 views
0

流暢なnhibernateで結合されたサブクラスを自動マッピングするとき、結合されたサブクラスに主キーを与える方法を見つけることができません。Fluent NHibernate Automapがサブクラスに参加しました。鍵を設定する

自分のID「location_ id」を自分のシーケンスで持たせたいのですが、次に、address_id列を使用してアドレス指定する必要があります。

今のところ、 "addressid"をプライマリキーとして使用している場所が生成されていますが、これは私が望むものではありません。オートメーションを使ってこれをどのように変更するのですか?

答えて

0

私はあなたがサブクラス結合関係を持っているかどうかはわかりません。つまり、定義上、結合されたサブクラスはその親クラスと同じIDを持ちます。たとえば、名前/年齢などの一般的な「人物」情報のデータベースにPersonエンティティを格納し、別のテーブルに格納されたEmployeeサブクラスエンティティを持ち、位置、給与、雇用日などのデータを保持しているとします。だからEmployeePersonのサブタイプであり、完全な "Employee-Person"オブジェクトを取得するには、その2つのテーブルを主キーで結合する必要があります(例:SELECT * FROM Employee INNER JOIN Person ON Employee.Employee_id = Person.Person_id)。

あなたのリレーショナルモデルについてのはここにありますか? Locationは本当にサブタイプAddressですか?あなたの物件名からちょっとしたことを考えてみると、これはあなたの意図ではないようです。 AddressOrganizationの間に多対多があるようです(つまり、同じアドレスに複数の「組織」があり、「組織」に多数のアドレスがある可能性があります)特定の住所の組織のために。その場合は、「組織」、「連絡先」、Addressと「組織」の関係を定義する別のエンティティをマッピングする必要があります。

+0

ええ、そうです、私は既にこのモデルからコードを変更しました。私はちょうどそれがアドレスのように私が私のフォームでそれにバインドできるように、このように設定したかった。私はすべてがうまくいっていますが、それは私が望むやり方ではありません。答えをありがとう。 –

関連する問題