Помогите создать соглашение ColumnName с помощью FluentNHibernate - PullRequest
2 голосов
/ 14 мая 2010

Я пытался указать пользовательское соглашение об именах для моих столбцов таблицы базы данных. До сих пор я смог установить соглашение для имени таблицы, но не для фактических столбцов. Я видел несколько руководств в Интернете, но они не работают с использованием последней версии Fluent NHibernate (1.0.0 RTM).

public class CamelCaseSplitNamingConvention : IClassConvention, IComponentConvention
{
    public void Apply(IClassInstance instance)
    {
        instance.Table(instance.EntityType.Name.ChangeCamelCaseToUnderscore());
    }

    public void Apply(IComponentInstance instance)
    {
        // is this the correct call for columns? If not, which one?
    }
}

Пожалуйста, помогите.

1 Ответ

4 голосов
/ 14 мая 2010

Чтобы создать соглашение для имен столбцов, вы должны использовать IPropertyConvention вместо IComponentConvention.

Например (используя тот же метод для преобразования регистра верблюда в подчеркивание, как в коде вашего примера):

public class ColumnNameConvention : IPropertyConvention
{
    public void Apply(IPropertyInstance instance)
    {
        instance.Column(instance.Property.Name.ChangeCamelCaseToUnderscore());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...