Нужна помощь в воссоздании Subsonic 2.2 / SubCommander сгенерированных имен таблиц и столбцов - PullRequest
0 голосов
/ 23 февраля 2011

Я пишу несколько шаблонов генерации кода, которые будут работать рука об руку с сгенерированными классами / сборками SubSonic 2.2 / SubCommander.У меня проблема в том, что SubSonic использует некую красивую магию для нормализации имен таблиц и столбцов, их слюаризации, извлечения посторонних символов и т. Д.

Мои сгенерированные классы (должны) извлекают имена таблиц и столбцов напрямуюиз схемы базы данных, и, как вы можете себе представить, они не соответствуют сгенерированным «красивым» именам.Поэтому я попытался использовать несколько комбинаций классов Subsonic.Utilites, singularize, ToProper и т. Д. Но я не могу найти правильную комбинацию, соответствующую выводу субкомандера.

Мне удалось получитькопию исходного кода SubCommander 2.0 и просмотрел там, но мне не повезло найти, где происходит нормализация имен.Может ли кто-нибудь помочь мне найти правильную комбинацию служебных методов, которые субкомандер использует для генерации имен таблиц и столбцов?

Если это имеет какое-то значение, я не использую какие-либо специальные "переключатели" для дозвуковых в моем app.config на стороне подкомандующего, за исключением fixPluralClassNames = "true".

1 Ответ

1 голос
/ 02 марта 2011

Взгляните на TableSchema.cs, ​​вас, вероятно, интересуют следующие два элемента

  1. Установщик для ColumnName в классе TableColumn, который вызывает TransformPropertyName

  2. Сеттер для TableName в классе AbstractTableShema, который вызывает TransformClassName

Есть несколько других вызовов для нормализации FK и отношений, но эти два выше должны получить имена вашего класса / свойствасоответствовать SubSonic.

...