【问题标题】:SubSonic 3 Simple Query ToolSubSonic 3 简单查询工具
【发布时间】:2010-11-09 18:34:48
【问题描述】:

我想使用 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 版的挂断吗?

【问题讨论】:

    标签: subsonic


    【解决方案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 #>";
          }
        }
    
    <# }#>   
    

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多