私は C# で Fluent NHibernate のテストを開始しました。20 の関連クラスを持つ適切に正規化されたオブジェクト構造があります。現在、NHibernate 3.2 で Fluent 1.3 を使用しています。これまでのところ、私は自分に合った AutoMap 機能を使用することができました。非常に便利です!
しかし... 3つのテーブルは「列挙テーブル」であり、特定のID値でレコードを設定する必要があります。これらのテーブルを手動でマッピングして、残りを自動マッピングしようとしました。しかし、手動テーブルが作成されると、自動マップされたテーブルを参照するため失敗します (手動マッパーでは使用できませんか?)。
AutoMapping を使用することは可能ですが、一部のクラスでは主キーで ID の作成をオーバーライドしますか? カスタム規約を作成しようとしましたが、成功しませんでした。
public class OverrideIdentityGeneration : Attribute
{
}
public class ConventionIdentity : AttributePropertyConvention<OverrideIdentityGeneration>
{
protected override void Apply(OverrideIdentityGeneration attribute, IPropertyInstance instance)
{
instance.Generated.Never();
}
}
他の方法はありますか?すべてのクラスで手動マッピングを使用することを余儀なくされるのは悲しいことです....