我CustomProperty
在域模型中有一个实体,它被其他几个实体使用。
Product
{
int Id;
Collection<CustomProperty> CustomProperties;
}
和
Order
{
int Id;
Collection<CustomProperty> CustomProperties;
}
但在 DB 中,我不希望只有一个表CustomProperty
包含可空外键到Product
表和另一个可空外键到Order
. 相反,我需要两个单独的表ProductCustomProperty
和OrderCustomProperty
.
我需要通过自动映射和约定来做到这一点。有没有人有任何想法?
顺便说一句,我有一个不适合我的想法。也许有人知道为什么:
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() 没有设置任何东西。