我正在编写一些代码生成模板,它们将与SubSonic 2.2 / SubCommander生成的类/程序集一起使用。我遇到的问题是,SubSonic正在使用一些漂亮的魔法来规范表格和列名,单独化它们,拉出无关的字符等。
我生成的类(必须)直接从数据库模式中提取表名和列名,并且您可以想象它们与亚音速生成的“漂亮”名称不匹配。所以我试图使用Subsonic.Utilites类,singularize,ToProper等的几种组合......但我似乎找不到合适的组合来匹配子命令员输出的内容。
我能够获得SubCommander 2.0源代码的副本,并查看了那里,但我没有运气去寻找名称正常化的地方。有人可以帮我找到子命令用来生成表名和列名的实用方法的正确组合吗?
如果它有任何区别我在子命令端的app.config中没有使用任何特殊的“开关”亚音,除了fixPluralClassNames =“true”。
答案 0 :(得分:1)
看一下TableSchema.cs,您可能对以下两个项目感兴趣
TableColumn类中ColumnName的setter,它调用TransformPropertyName
AbstractTableShema类中TableName的setter,它调用TransformClassName
还有一些其他调用来规范化FK和关系,但上面的两个应该让你的类/属性名称与SubSonic匹配。