ドメインモデルには、他のいくつかのエンティティから使用される1つのエンティティCustomProperty
があります。1つのエンティティをFluent Nhibernateオートマッピング規則を使用して複数のDBテーブルにマップする方法
Product
{
int Id;
Collection<CustomProperty> CustomProperties;
}
と
Order
{
int Id;
Collection<CustomProperty> CustomProperties;
}
しかし、DBに、私はProduct
テーブルへのNULL可能外部キーとOrder
に別のNULL可能外部キーが含まれているだけで一つのテーブルCustomProperty
を望んでいません。代わりに、私は2つの別々のテーブルProductCustomProperty
とOrderCustomProperty
が必要です。
私はオートマッピングと慣習でそれを行う必要があります。誰にもアイデアはありますか?
Btw、私は私のためにはうまくいかない考えがありました。たぶん誰もが手掛かりがなぜいます
public class CustomPropertyConvention : IHasManyConvention, IHasManyConventionAcceptance
{
public void Apply(IOneToManyCollectionInstance instance)
{
instance.Table("ProductCustomProperty");
}
public void Accept(IAcceptanceCriteria<IOneToManyCollectionInspector> criteria)
{
criteria.Expect(i => i.Relationship.Class.Name == "CustomProperty" && i.Relationship.EntityType == typeof(Product));
}
}
この例では、完璧に働いている必要がありますが、IOneToManyCollectionInstance.Table()は何も設定しません。