Недопустимый токен 'событие' в классе ... ошибка компиляции проекта SubSonic - PullRequest
0 голосов
/ 09 марта 2011

Я просто дурачусь с дозвуковой ORM в первый раз. Я использую шаблоны ActiveRecord

Я отредактировал включаемые файлы в соответствии с инструкциями на дозвуковом веб-сайте и указал файл app.config на мою базу данных MySql.

Когда я собираюсь скомпилировать библиотеку классов, я получаю следующую ошибку

Недопустимый токен 'событие' в объявлении члена класса, структуры или интерфейса

Я предполагаю, что проблема связана с тем, что одна из моих таблиц называется «События», и Subsonic должен принять это, отрубить «S» и в конечном итоге генерировать код, который пытается создать событие с именем типа «. "который создает проблемы, потому что событие - это ключевое слово в C #.

Прав ли я об этом? И есть ли способ обойти это без переименования таблиц в моей базе данных?

EDIT:

Ошибка генерируется в файле context.cs в следующей строке

       public Query<event> events { get; set; }

1 Ответ

2 голосов
/ 10 марта 2011

Посмотрите на верхнюю часть вашего Settings.ttinclude файла.Существует метод очистки, который вы можете использовать для изменения имен таблиц.Я не знаю, сработает ли это, до или после того, как "s" прервется, но тем или иным способом вы можете добавить дополнительные "s", чтобы имя класса было events, а не event

или вы можете даже переименовать таблицу на что-то совершенно другое

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

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

    //put your logic here...

        if (result.ToLower() == "event")
            result = result + "s";
        else if (result.ToLower() == "events")
            result = result + "s";

        // or
        if (result.ToLower() == "event")
            result = "somethingthathappensonaspecificdate"; // ;-)

    return result;
}
...