我公司的MySql数据库充斥着名为“system”的字段,因此SubSonic生成的代码与.NET System命名空间发生冲突。
我理解AppendWith将一个字符附加到它标识为与保留字冲突的字段中,但在我的情况下它似乎没有做任何事情。有没有办法查看/更新它知道的保留字列表?
答案 0 :(得分:3)
这里的问题相同: 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 :(得分:1)
您可以尝试使用“stripTableText”将“system”替换为“”。有很多方法可以做到这一点,它甚至可以根据需要使用正则表达式 - 看看: http://subsonicproject.com/configuration/config-options/