SubSonic 3简单查询工具

时间:2009-07-10 15:58:45

标签: subsonic

我想使用SubSonic 3(.0.0.2)中的简单查询工具和文档页面(http://subsonicproject.com/docs/Simple_Query_Tool)意味着可以轻松获取表列名称(例如Product.ProductNameColumn):

int records = new Select(Product.ProductIDColumn, Product.ProductNameColumn).
                From<Product>().GetRecordCount();

ActiveRecord生成的类似乎没有公开此信息 - 没有ProductIDColumn属性。这是版本2的挂起吗?

1 个答案:

答案 0 :(得分:1)

目前无法在SubSonic 3中获取列名。您仍然可以将简单查询工具与字符串一起使用,或者如果您修改Structs.tt模板,则可以为您生成它们。 找到这部分代码(我认为是第45行):

<# foreach(var col in tbl.Columns){ #>
    public IColumn <#=col.CleanName#>{
      get{
        return this.GetColumn("<#=col.Name#>");
      }
    }            
<# }#> 

并修改它,看起来像这样:

<# foreach(var col in tbl.Columns){ #>
    public IColumn <#=col.CleanName#>{
      get{
        return this.GetColumn("<#=col.Name#>");
      }
    }

    public static string <#= col.CleanName #>Column{
      get{
        return "<#= col.Name #>";
      }
    }

<# }#>   

然后,您应该将所有列名称自动生成为静态属性。