2009-07-10 9 views
0

Je veux utiliser l'outil Simple Query dans SubSonic 3 (.0.0.2) et la page docs (http://subsonicproject.com/docs/Simple_Query_Tool) implique qu'il existe un moyen d'obtenir facilement les noms des colonnes de la table (par exemple Product.ProductNameColumn) :SubSonic 3 Simple Query Tool

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

La classe générée ActiveRecord ne semble pas exposer cette information - il n'y a pas de propriété ProductIDColumn. Est-ce un hang-up de la version 2?

Répondre

1

Il n'y a aucun moyen d'obtenir les noms de colonnes dans SubSonic 3 pour le moment. Vous pouvez toujours utiliser l'outil de requête simple avec des chaînes ou si vous modifiez le modèle Structs.tt, vous pouvez les générer pour vous. Trouver cette section de code (je pense qu'il est la ligne 45):

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

et de le modifier de sorte qu'il ressemble à ceci:

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

<# }#> 

Ensuite, vous devriez obtenir tous vos noms de colonnes générés automatiquement les propriétés statiques .

+0

Vous devriez contribuer cela comme un patch sur Github –

+0

Fait - http://github.com/adam7/SubSonic-3.0-Templates/commit/cf3a1979eb99b3e16c9e4459e66a5f4f25ef9e3e –