2008-08-21 65 views
7

我一直在使用Linq to SQL一段时间,我发现它非常有用并且易于使用。与过去使用的其他ORM工具一样,从数据库填充的实体对象通常具有指示数据库中基础数据列长度的属性。这对数据绑定有帮助,您可以在文本框上设置MaxLength属性,例如限制用户输入的输入长度。Linq to SQL - 基础列长度

我找不到使用Linq to SQL获取基础数据列长度的方法。有谁知道一种方法来做到这一点?请帮助。

回答

1

感谢。其实这两个答案似乎工作。不幸的是,他们似乎在查看代码生成完成时生成的Linq属性。虽然这似乎是正确的做法,但在我的情况下,我们销售软件产品,偶尔客户会扩展一些列长度以适应他们的数据。因此,使用此技术报告的字段长度可能并不总是反映基础数据列的真实长度。嗯,Linq并不是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); 

}