У меня есть одна сущность CustomProperty
в доменной модели, которая используется от нескольких других сущностей.
Product
{
int Id;
Collection<CustomProperty> CustomProperties;
}
и
Order
{
int Id;
Collection<CustomProperty> CustomProperties;
}
Но в БД мне не нужна только одна таблица 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 () ничего не устанавливает.