Я пытался изменить соглашение, чтобы мои идентификаторы следовали этому простому правилу: ProductCode , CustomerCode , OrderCode и т. Д. И т. Д.Я нашел простой способ сделать это, добавив соглашение:
public class PrimaryKeyNameConvention : IIdConvention
{
public void Apply(FluentNHibernate.Conventions.Instances.IIdentityInstance instance)
{
instance.Column(instance.EntityType.Name + "Code");
}
}
Теперь я получил то, что хотел, но похоже, что FluentNhibernate отказывается применять то же правило со столбцом, ссылающимся на мои первичные ключи.Пример: моя таблица Customer будет иметь PK с именем CustomerCode , но моя таблица Order будет иметь справочный столбец с именем Customer_Id .Я пробовал разные способы переименовать столбец Customer_Id в CustomerCode (таблица Order ), но кажется, что ничего не работает должным образом.Единственное решение, которое работает, - это добавление соглашения, подобного этому:
public class ReferenceConvention : IReferenceConvention
{
public void Apply(FluentNHibernate.Conventions.Instances.IManyToOneInstance instance)
{
instance.Column(instance.Property.PropertyType.Name + "Code");
}
}
, но теперь FluentNhibernate создает два столбца, которые ссылаются на мой первичный ключ: CostumerCode и Customer_Id .
Я не могу понять, что я делаю неправильно.Любая помощь будет оценена.
С уважением,
Альберто