2009-07-10 3 views
0

Я хочу использовать инструмент Simple Query в SubSonic 3 (.0.0.2), а страница docs (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

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