我一直在尝试为数据库表列指定自定义命名约定。到目前为止,我已经能够为表的名称设置约定,但不是实际的列。我在互联网上看过一些指南,但他们没有使用最新的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?
}
}
请帮忙。
答案 0 :(得分:4)
要为列名创建约定,您应该使用 IPropertyConvention 而不是IComponentConvention。
例如(使用相同的方法将camel case转换为下划线,如示例代码中所示):
public class ColumnNameConvention : IPropertyConvention
{
public void Apply(IPropertyInstance instance)
{
instance.Column(instance.Property.Name.ChangeCamelCaseToUnderscore());
}
}