Возможно, я использовал не тот язык. Прежде чем я продолжил вносить изменения, я хотел убедиться, что это не все готово в каком-то списке приоритетов или где-то над ним работают. Вот способ, которым я пошел с этим.
В Settings.ttinclude:
string[] reservedWords = new string[]{"abstract", "as", "base", "bool", "break", "byte", "case", "catch", "char", "checked",
"class", "const", "continue", "decimal", "default", "delegate", "do", "double", "else", "enum", "event", "explicit",
"extern", "finally", "fixed", "float", "for", "foreach", "goto", "if", "implicit", "in", "int", "interface", "internal",
"is", "lock", "long", "namespace", "new", "null", "object", "operator", "out", "override", "params", "private",
"protected", "public", "readonly", "ref", "return", "sbyte", "sealed", "short", "sizeof", "stackalloc", "static", "string",
"struct", "switch", "this", "throw", "try", "typeof", "unit", "ulong", "unchecked", "unsafe", "ushort", "using", "virtual",
"void", "volatile", "while", "FALSE", "TRUE", "yield", "by", "descending", "from", "group", "into", "orderby", "select",
"var", "where" };
string CleanUp(string tableName){
string result=tableName;
//strip blanks
result=result.Replace(" ","");
if(reservedWords.Contains(result)){
result += "_SafeName";
}
//put your logic here...
return result;
}
Функция CleanUp уже исправляет имена таблиц и столбцов, поэтому я разместил здесь свою логику. Я надеюсь, что я получил все зарезервированные слова ...
Это также относится к меньшему проекту, где база данных - MySQL.
Так что этот хак / патч предназначен только для c # / mysql, но его очень легко перенести на другие БД / языки.