SubSonic包括排除的替代表

时间:2009-07-16 14:12:04

标签: subsonic

SubSonic很棒,可以帮助我更快地编写代码,但现在我遇到了一些我认为可以帮助大量程序员的东西。

我正在编写一个庞大的数据库,但只需要大约50或7个表中的6或7个表。 Settings.ttinclude中的排除要求我输入不需要的其他表。我希望有一个IncludeTables字符串数组,可以加速应用程序所需的表的输入。

希望SubSonic项目的团队已经有了补丁/解决方案。

将帖子 我看到v2.2有includeTableList和其他配置选项的完整列表。我在哪里设置这些在v3.0.0.2 ???

3 个答案:

答案 0 :(得分:2)

我不是SubSonic专家,但如果您使用的是ActiveRecord t4模板,则可以自行编辑模板。

查看SQLServer.ttinclude:

const string TABLE_SQL=@"SELECT *
    FROM  INFORMATION_SCHEMA.TABLES";

只需在上面添加一个WHERE子句,只包含你想要的表。

答案 1 :(得分:2)

Sestocker - 谢谢你......我相信这会奏效,但我有我想要的解决方案:

在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()”)。