Linq to SQL - 底层列长度

8

我已经使用Linq to SQL有一段时间了,发现它非常实用和易于使用。在我以前使用的其他ORM工具中,从数据库中填充的实体对象通常具有指示底层数据列长度的属性。在数据绑定的情况下,这非常有帮助,例如,您可以在文本框上设置MaxLength属性以限制用户输入的长度。

我无法找到使用Linq to SQL获取底层数据列长度的方法。有人知道如何做到这一点吗?请帮忙!

3个回答

7

2
谢谢。实际上,这两个答案似乎都可以。不幸的是,它们似乎查看了在代码生成时生成的Linq属性。虽然这似乎是正确的做法,但在我的情况下,我们销售软件产品,偶尔客户会扩展一些列长度以适应其数据。因此,使用此技术报告的字段长度可能并不总是反映底层数据列的真实长度。哎呀,这不是Linq to SQL的错,是吗?:)
感谢快速回答!

1
如果您需要知道确切的列长度,可以使用System.Data类本身。类似于以下代码:
var context = new DataContextFromSomewhere();
var connection = context.Connection;
var command = connection.CreateCommand( "SELECT TOP 1 * FROM TableImInterestedIn" );
var reader = command.ExecuteReader();
var table = reader.GetSchemaTable();

foreach( var column in table.Columns )
{
    Console.WriteLine( "Length: {0}", column.MaxLength );

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接