В методе Accept
в этом случае вы должны просто return true
.Этот метод должен решить, должно ли ваше соглашение применяться для данного экземпляра, например, вы можете изменить имя по умолчанию только для ваших int
-типовых полей и т. Д. Если вы определяете общее соглашение, true
означает просто«принять все случаи». Однако это можно переопределить, указав имя столбца в отображении.
Об изменении регистра - я тоже не знаю такой библиотеки.Но задача довольно проста, поэтому ваше решение здесь кажется очень разумным.
РЕДАКТИРОВАТЬ
Хорошо, какую версию FNH вы используете?Я не вижу в IPropertyConvention
метода bool Accept
.
Здесь вы можете реализовать как IPropertyConvention
(только с void Apply
), так и IPropertyConventionAcceptance
(с методом Accept
)работает немного по другому).Попробуйте что-то вроде этого (не тестировал):
public class PascalCaseColumnNameConvention : IPropertyConvention, IPropertyConventionAcceptance
{
public void Accept(IAcceptanceCriteria<IPropertyInspector> criteria)
{
criteria.Expect(x => !x.Columns.HasUserDefined());
}
public void Apply(IPropertyInstance instance)
{
instance.Column(instance.Property.Name.ChangePascalCaseToUnderscore());
}
}
Я также обнаружил классный класс, выполняющий много полезных преобразований строк - см. Inflector .Но в любом случае, если вам нужно только это конкретное обращение, я бы остановился на собственном простом решении.