我想使用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的挂起吗?
答案 0 :(得分: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 #>";
}
}
<# }#>
然后,您应该将所有列名称自动生成为静态属性。