La base de données MySql de ma société est criblée de champs nommés «système», de sorte que le code généré par SubSonic est en conflit avec l'espace de noms du système .NET. Je comprends que AppendWith ajoute un (des) caractère (s) aux champs qu'il identifie comme étant en conflit avec des mots réservés, mais cela ne semble pas faire quoi que ce soit dans mon cas. Existe-t-il un moyen de voir/mettre à jour la liste des mots réservés qu'il connaît?Appenwith et
0
A
Répondre
3
Même problème ici: AppendWith ne fonctionne que pour les mots-clés réservés non pour les espaces de noms (par exemple public, etc..).
Voilà comment je résolu le problème (voir l'entrée de 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
Vous pouvez essayer d'utiliser "stripTableText" pour remplacer "system" par "". Il y a beaucoup de façons de le faire et il utilise même Regex si nécessaire - un coup d'oeil: http://subsonicproject.com/configuration/config-options/
qui a fait l'affaire! Merci. –