Question

Cela ne fait pas de sens pour moi. Nous avons eu cela se produire deux fois plus récemment lors de la génération des objets SubSonic pour une colonne de table de base de données ou vue se est renommé ColumnX. La première fois, il était logique parce que le nom de la colonne est la valeur, un mot-clé C #. Mais la deuxième fois, il est arrivé, le nom de la colonne de la table est de qualité, ce qui est un mot-clé ou mot réservé. Est-ce que quelqu'un sait pourquoi SubSonic transforme ce nom de colonne dans gradex quand il génère des objets?

Merci.

Était-ce utile?

La solution

Il est, comme vous supposiez, pour remplacer les mots de sorte qu'ils ne sont pas en conflit avec .Net ou types SQL. Ne pas oublier les pourparlers SubSonic à divers fournisseurs de db donc bien « grade » n'est pas un type MSSQL, il est possible que c'est un Oracle ou MySQL etc ...

Dans le cadre SubSonic.Utilities.Utility est une méthode nommée KeyWordCheck qui fait le appending.

Peut-être que vous pouvez compiler votre propre version et de modifier cette méthode pour exclure « grade »:

  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);
        }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top