SubSonic 3 und MySQL: Das Entfernen des Unterstrichs vom Spaltennamen in der CleanUp () -Methode führt zu Ausnahmen bei der Verwendung von Eigenschaften in linq-query

Bei der Verwendung von SubSonic 3 (.0.0.3) ActiveRecord mit MySQL ist ein Problem aufgetreten.

Da MySQL die Verwendung von Großbuchstaben in Tabellen- oder Spaltennamen nicht zulässt (oder eher ignoriert), habe ich beschlossen, Wörter durch Unterstriche zu trennen, z. entity_id, und verwenden Sie dann die CleanUp () - Methode, um die Groß- und Kleinschreibung des Titels hinzuzufügen und die Unterstriche zu entfernen.
Ein Freund hat eine ToTitleCase (string s) -Methode geschrieben, die so aussieht:

string ToTitleCase(string s)
{
    CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
    TextInfo textInfo = cultureInfo.TextInfo;
    return textInfo.ToTitleCase(s);
}

Und die CleanUp () -Methode sieht folgendermaßen aus:

string CleanUp(string tableName){
    string result=tableName;

    //strip blanks
    result=result.Replace(" ","");

    //put your logic here...
    result = ToTitleCase(result);
    result = result.Replace("_", "");

    return result;
}

Wenn ich dann tue:

var entity = Entity.All().Where(e => e.EntityName.Contains("John"));

Ich erhalte eine NotSupportedException mit der Meldung "Das Mitglied 'EntityName' wird nicht unterstützt."

Wenn ich entferne

result = result.Replace("_", "");

Alles funktioniert einwandfrei, nur bekomme ich Eigenschaften, die wie Entity_Id aussehen, was nicht ganz das ist, was ich will.

Wenn jemand weiß, warum das passiert, würde ich es gerne hören. Wenn es möglich ist, noch besser zu beheben! Es ist kein Showstopper, aber es ist etwas nervig.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage