Subsonic 柱的亚音速3最大长度

Subsonic 柱的亚音速3最大长度,subsonic,Subsonic,我有一种笨拙的方法来获取数据库中某个列的最大长度,但它太糟糕了,以至于它似乎是错误的: var length = new DataNS.WidgetTable(provider).description.MaxLength 我真的需要实例化某个对象并进行挖掘吗?我甚至必须显式地向它传递一个提供者 如果这真的是正确的方法,那么让当前提供者传递给它的最佳方法是什么?如果不是,那么最好的方法是什么?是的,这看起来确实有点笨拙,但我看不到获得MaxLength值的更笨拙的方法。要获取当前提供程序,只需

我有一种笨拙的方法来获取数据库中某个列的最大长度,但它太糟糕了,以至于它似乎是错误的:

var length = new DataNS.WidgetTable(provider).description.MaxLength
我真的需要实例化某个对象并进行挖掘吗?我甚至必须显式地向它传递一个提供者


如果这真的是正确的方法,那么让当前提供者传递给它的最佳方法是什么?如果不是,那么最好的方法是什么?

是的,这看起来确实有点笨拙,但我看不到获得MaxLength值的更笨拙的方法。要获取当前提供程序,只需使用Subsonic.DataProviders.ProviderFactory类的GetProvider方法。因此,您的示例如下所示:

var length = new DataNS.WidgetTable(ProviderFactory.GetProvider()).description.MaxLength;

在亚音速2.2中,我执行以下操作。这在3中不起作用吗

var length = Template.Schema.GetColumn("Name").MaxLength;

如果使用ActiveRecord,则对象具有[COLUMN\u NAME]COLUMN属性,该属性包含所有这些信息。因此,如果您实例化了一个Post对象(如“Post”),则可以使用Post.TitleColumn.MaxLength


如果您使用的是亚音速3,您可以直接进入Structs.tt,并根据需要进行旋转。

我使用ActiveRecord在亚音速3中实现了类似的功能,它可以:

new AccountsTable(null).ContactEmail.MaxLength
我正在ASP.NET MVC视图中使用它:

<%= Html.TextBoxFor(model => model.ContactEmail,
new { maxlength = new AccountsTable(null).ContactEmail.MaxLength  })%>
model.ContactEmail,
新建{maxlength=new AccountsTable(null).ContactEmail.maxlength})%>
但不确定在AccountsTable构造函数中传递null是否会在某个时候出错——有人知道这是不可取的吗?我试图找到另一种方式,尽可能简洁,但这就是我的结局