SubSonic很棒,可以帮助我更快地编写代码,但现在我遇到了一些我认为可以帮助大量程序员的东西。
我正在编写一个庞大的数据库,但只需要大约50或7个表中的6或7个表。 Settings.ttinclude中的排除要求我输入不需要的其他表。我希望有一个IncludeTables字符串数组,可以加速应用程序所需的表的输入。
希望SubSonic项目的团队已经有了补丁/解决方案。
将帖子 我看到v2.2有includeTableList和其他配置选项的完整列表。我在哪里设置这些在v3.0.0.2 ???
答案 0 :(得分:2)
我不是SubSonic专家,但如果您使用的是ActiveRecord t4模板,则可以自行编辑模板。
查看SQLServer.ttinclude:
const string TABLE_SQL=@"SELECT *
FROM INFORMATION_SCHEMA.TABLES";
只需在上面添加一个WHERE子句,只包含你想要的表。
答案 1 :(得分:2)
在Settings.ttinclude中,我在ExcludeTables变量下面有一个IncludeTables变量:
string[] ExcludeTables = new string[]{
....
};
string[] IncludeTables = new string[]{
....
};
然后我更新了ActiveRecord.tt和Context.tt,更改了检查ExcludeTables的代码:
if(!ExludeTables.Contains(tbl.Name))
....
到这个
if(IncludeTables.Contains(tbl.Name))
....
所以我确保对“!ExcludeTables”的任何引用都更改为“IncludeTables”。
它生成了我需要的类,但我还没有测试过它。
我会看看我是否可以使用t4模板让代码同时使用Exclude和Include,看看我是否可以在今天或明天晚些时候在线发布。
答案 2 :(得分:1)
拥有T4模板的目标是让你自己做 - 不要求我们解决它(不是我们真诚地介意 - 但对你来说更容易)。在这种情况下,大多数人只想要排除几个表。
那就是说,在下一个版本中,我将使该方法更通用,以便您可以根据需要进行更改(而不是检查数组 - 我应该问“ShouldGenerate()”)。