SubSonic生成的表,列为ColumnX

时间:2010-08-27 17:32:21

标签: subsonic subsonic2.2

这对我来说没什么意义。最近我们在为数据库表生成SubSonic对象或将视图列重命名为ColumnX时最近发生了两次。第一次有意义,因为列名是Value,一个C#关键字。但第二次发生时,表的列名是Grade,它不是关键字或保留字。有谁知道为什么SubSonic在生成对象时将此列名称转换为GradeX?

感谢。

1 个答案:

答案 0 :(得分:0)

正如您所假设的那样,替换单词以使它们不与.Net或SQL类型冲突。不要忘记SubSonic与各种数据库提供商的对话,所以尽管“Grade”不是MSSQL类型,但它可能是Oracle或MySQL等......

在SubSonic.Utilities.Utility下是一个名为KeyWordCheck的方法,用于执行追加。

也许您可以编译自己的版本并修改此方法以排除“等级”:

  public static string KeyWordCheck(string word, string table, DataProvider provider)
        {
            string appendWith = "X";
            if (provider.AppendWith != string.Empty)
                appendWith = provider.AppendWith;

            return KeyWordCheck(word, table, appendWith);
        }