В настоящее время я использую Fluent NHibernate для генерации схемы базы данных, но я хочу, чтобы сущности в отношении HasMany указывали на другой столбец для ссылки. IE, вот что NHibernate сгенерирует при создании DDL:
alter table `Pony` add index (Stable_ID),
add constraint Ponies_Stable foreign key (Stable_Id)
references `Stable` (Id);
Вот что я хочу получить:
alter table `Pony` add index (Stable_ID),
add constraint Ponies_Stable foreign key (Stable_Id)
references `Stable` (EntityId);
Где Stable.ID будет первичным ключом, а Stable.EntityId - просто еще один столбец, который я установил.
У меня уже есть класс, который выглядит так:
public class ForeignKeyReferenceConvention : IHasManyConvention
{
public void Apply(IOneToManyCollectionInstance instance)
{
instance.Cascade.All();
//What goes here so that I can change the reference column?
}
}
Что мне нужно сделать, чтобы изменить ссылочный столбец?
В качестве примера, вот как выглядит код для IReferenceConvention для того же:
public class MyReferenceConvention : IReferenceConvention
{
public void Apply(IManyToOneInstance instance)
{
instance.PropertyRef("EntityId");
instance.Cascade.All();
}
}
EDIT:
instance.Key.Column("EntityId")
не является решением.