2012-02-01 18 views
0

私はクラスがNHibernate。レコードは

abstract class Entity<T> where T : Entity<T> 
{ 
    public virtual Guid ID { get; private set; } 
} 

私のすべてのエンティティは、それから継承されてい一意性。 employeeの場合、同じパスポート番号を持つ2人の従業員とその他の身元特定文書を持つことは不可能です。

私は異なるsurrogate keysと同じpassport numberの2人の従業員をデータベースに入れることができません。

マッピングに制約はありますか?

ありがとうございます!

答えて

1

あなたが流暢使用している場合は、パスポート

のためのユニーク制約を追加することができます。あなたのドメインで

mapping.Id(employee => employee.Id); 
mapping.Map(employee => employee.passport).Unique(); 

すべてのエンティティは、あなたが持っているので、それらのすべては、サロゲートキーを使用しますエンティティから継承した場合他の制約を処理する

+0

私が理解している限り、 'xml'マッピングは普通の結果と同じです。だから私はプロパティに制約を置く必要があります。ありがとう! – lexeme

関連する問題