Question: I have a clumsy way to get the max length of a column in the database, but it's so bad that it seems wrong:

```
var length = new DataNS.WidgetTable(provider).description.MaxLength

```

Do I really have to instantiate some object and go digging through it? I even have to pass a provider to it explicitly.

If this really is the right way to do it, what's the best to get the current provider to pass to it? If it's not, what is the best way?

Answer: 
Yes this does seem a bit clumsy but I can't see any less clumsy way of getting the MaxLength values. To get the current provider you can just use the GetProvider method of theSubSonic.DataProviders.ProviderFactory class. So your example would look something like:

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

```
In subsonic 2.2 I do the following. Does this not work in 3?

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

```