Frage

Das macht nicht viel Sinn für mich. Wir hatten dies zweimal vor kurzem geschehen, wenn gewöhnte sich an ColumnX umbenannt SubSonic Objekte für eine Datenbanktabelle oder Ansicht Spalten zu erzeugen. Das erste Mal ist es sinnvoll, da der Spaltenname ist Wert, ein C # Schlüsselwort. Aber das zweite Mal geschah es, den Namen der Spalte der Tabelle ist Grade, die kein Schlüsselwort ist oder reserviertes Wort. Weiß jemand, warum SubSonic diese Spaltennamen in GRADEX verwandelt, wenn es Objekte erzeugt?

Danke.

War es hilfreich?

Lösung

Es ist, wie Sie, angenommen Worte zu ersetzen, so dass sie nicht in Konflikt steht mit .Net oder SQL-Typen. Vergessen Sie nicht, SubSonic Gespräche zu verschiedenen DB-Provider so dass, obwohl „Grade“ ist kein MSSQL geben, es ist möglich, es ist ein Oracle oder MySQL etc ...

Unter SubSonic.Utilities.Utility ist eine Methode namens KeyWordCheck, die das Anfügen der Fall ist.

Vielleicht können Sie Ihre eigene Version kompilieren und diese Methode ändern auszuschließen „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);
        }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top