2009-07-10 12 views
0

SubSonic 3(.0.0.2)でSimple Queryツールを使用し、ドキュメントページ(http://subsonicproject.com/docs/Simple_Query_Tool)を使用すると、テーブルの列名(Product.ProductNameColumnなど)を簡単に保持できるようになります。 :SubSonic 3 Simple Query Tool

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 –

+0

のパッチとして投稿する必要があります。http://github.com/adam7/SubSonic-3.0-Templates/commit/cf3a1979eb99b3e16c9e4459e66a5f4f25ef9e3e –