我正在为 ConfORM 编写我的第一个自定义列名称应用程序。
如何检查另一列是否已被映射具有相同的映射名称?
这是我到目前为止所拥有的:
public class MyColumnNameApplier : IPatternApplier<PropertyPath, IPropertyMapper>
{
public bool Match(PropertyPath subject)
{
return (subject.LocalMember != null);
}
public void Apply(PropertyPath subject, IPropertyMapper applyTo)
{
string shortColumnName = ToOracleName(subject);
// How do I check if the short columnName already exists?
applyTo.Column(cm => cm.Name(shortColumnName));
}
private string ToOracleName(PropertyPath subject)
{
...
}
}
}
我需要将生成的列名缩短到少于 30 个字符以适应 Oracle 的 30 个字符限制。因为我正在缩短列名,所以相同的列名可能会生成两个不同的属性。我想知道何时发生重复映射。
如果我不处理这种情况,ConfORM/NHibernate 允许两个不同的属性“共享”相同的列名——这显然会给我带来问题。