Аппен с - PullRequest
       22

Аппен с

0 голосов
/ 03 июня 2009

База данных MySql моей компании пронизана полями с именем "system", поэтому сгенерированный код SubSonic конфликтует с пространством имен .NET System.

Я понимаю, что AppendWith добавляет символ (ы) к полям, которые он идентифицирует как конфликтующие с зарезервированными словами, но в моем случае он, похоже, ничего не делает. Есть ли способ просмотреть / обновить список зарезервированных слов, которые он знает?

Ответы [ 2 ]

3 голосов
/ 03 июня 2009

Та же проблема здесь: AppendWith работает только для зарезервированных ключевых слов (например, public и т. Д.), А не для пространств имен.

Вот как я решил проблему (посмотрите на запись regexDictionaryReplace)

  <add name="MyDataProvider"
       type="SubSonic.MySqlInnoDBDataProvider, SubSonic"
       connectionStringName="myConnectionString"
       generateLazyLoads="true"
       regexDictionaryReplace="[sS]ystem,SystemX;[tT]able[nN]ame,TableNameX"
       fixPluralClassNames="false"
       generatedNamespace="My.NameSpace"
       removeUnderscores="false"
       generateNullableProperties="false"
       generatePropertyChangedEventHandler="true"
       generateRelatedTablesAsProperties="true"
       excludeTableList="audit"
       tableBaseClass="ActiveRecord" />
1 голос
/ 03 июня 2009

Вы можете попробовать использовать "stripTableText", чтобы заменить "system" на "". Есть много способов сделать это, и он даже использует Regex, если нужно - взгляните: http://subsonicproject.com/configuration/config-options/

...