2009-07-10 55 views
0

我想在SubSonic 3(.0.0.2)和文檔頁面(http://subsonicproject.com/docs/Simple_Query_Tool)中使用簡單查詢工具,這意味着有一種方法可以輕鬆獲取表列名稱(例如Product.ProductNameColumn) :SubSonic 3簡單查詢工具

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

ActiveRecord生成的類似乎沒有公開此信息 - 沒有ProductIDColumn屬性。這是從版本2掛斷嗎?

回答

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 #>"; 
     } 
    } 

<# }#> 

那麼你應該得到所有的列名自動生成的靜態屬性。

+0

您應該將此作爲Github上的修補程序貢獻 – 2009-07-12 18:46:03