on the configuration there's a way to set the tables we want to exclude but what I need is to set the name of the table I want to include, excluding everything else.

Have anyone already done this?

Cheers! Alex

Was it helpful?


Ok, I've done it...

Just added the following line in a few places on the tt files: if(!ExcludeTables.Contains(tbl.Name)) {if((IncludeTables.Length != 0 && !IncludeTables.Contains(tbl.Name))) continue;

a slightly different line on the relations under the if(!ExcludeTables.Contains(fk.OtherTable)){ if((IncludeTables.Length != 0 && !IncludeTables.Contains(fk.OtherTable))) continue;

and added the following on the settings.ttinclude string[] IncludeTables = new string[]{ "tableA", "tableB" };

This is easy to implement but a future SubSonic update will erase my customization. Can this be added to the project?

Thanks! Alex


There is another "Hack" whereby you only need to change Settings.ttinclude; just replace string[] ExcludeTables ... with:

public interface ITableExcluder
    bool Contains(string table);
    bool ShouldExclude(string table);
    bool ShouldInclude(string table);

/// <summary>
/// Custom class to exclude tables via a programmatic means.
/// </summary>
public class TableExcluder : ITableExcluder
    public bool Contains(string tableName)
        if (ShouldExclude(tableName))
        return true;
        return !ShouldInclude(tableName);

    public bool ShouldExclude(string tableName)
        switch (tableName)
            case "sysdiagrams":
        case "BuildVersion":
            return true;

        if (tableName.StartsWith("blog_"))
            return true;

        return false;

    public bool ShouldInclude(string tableName)
        return true;

//This replaces the string array    
ITableExcluder ExcludeTables = new TableExcluder();

A bit of a hack, but at least it avoids replacing parts of the other files!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top