列名称约定
|
我想指定一个列名约定,该约定基本上采用pascal大小写的字段并将其转换为带下划线的所有大写字母。因此,属性OrderId变为列\“ ORDER_ID \”。我也希望仅当我尚未在映射中指定一个约定时才应用此约定。到目前为止,我的骨架如下:
public class PascalCaseColumnNameConvention : IPropertyConvention
{
public bool Accept(IPropertyInstance instance)
{
//Not sure what I should have here
}
public void Apply(IPropertyInstance instance)
{
instance.Column(instance.Property.Name.ChangePascalCaseToUnderscore());
}
}
除了字符串扩展方法以外,还有没有更好的方法来更改大小写?有没有已经在做这种事情的图书馆?
没有找到相关结果
已邀请:
1 个回复
凰葱崎济邯
方法时,您应该只选择
。此方法用于确定约定是否应适用于给定的实例,例如,您可能只想更改
型字段等的默认名称。如果要定义常规约定,
表示\“接受所有实例\”。不过,仍然可以通过在映射中指定列名称来覆盖它。 关于更改大小写-我也不知道这样的库。但是任务很简单,因此您的解决方案在这里看起来很合理。 编辑 好吧,您使用的是哪个FNH版本?我看不到
具有
方法。 您可以在此处实现
(仅使用
)和
(使用
方法的工作方式有所不同)。尝试类似的事情(尚未测试):
我还发现一个整洁的类可以进行很多有用的字符串转换-请参见Inflector。但是无论如何,如果您只需要这种特定的转换,我将保留自己的简单解决方案。