0
这对我来说没有多大意义。最近在为数据库表生成SubSonic对象或将列重命名为ColumnX时发生过两次这种情况。第一次它是有意义的,因为列名是Value,一个C#关键字。但是第二次发生时,表格的列名称是Grade,它不是关键字或保留字。有谁知道为什么SubSonic在产生对象时将这个列名变成GradeX?SubSonic生成列表作为ColumnX
谢谢。
这对我来说没有多大意义。最近在为数据库表生成SubSonic对象或将列重命名为ColumnX时发生过两次这种情况。第一次它是有意义的,因为列名是Value,一个C#关键字。但是第二次发生时,表格的列名称是Grade,它不是关键字或保留字。有谁知道为什么SubSonic在产生对象时将这个列名变成GradeX?SubSonic生成列表作为ColumnX
谢谢。
正如您所设想的那样,它会替换单词,以免它们与.Net或SQL类型冲突。不要忘记亚声速会谈各种数据库提供商,所以尽管“成绩”不是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);
}
谢谢,这是关于这个功能非常有用的信息。我最初忘记提及的是包含成绩列的表格被命名为成绩本身。所以我的理论是,由于SubSonic使行名称单数,成绩列变成了GradeX,所以它不与表本身发生冲突。 – 2010-08-30 16:56:31