Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq to sql Linq到SQL-基础列长度_Linq To Sql - Fatal编程技术网

Linq to sql Linq到SQL-基础列长度

Linq to sql Linq到SQL-基础列长度,linq-to-sql,Linq To Sql,我已经使用LINQtoSQL有一段时间了,我发现它非常有用并且易于使用。对于我过去使用过的其他ORM工具,从数据库填充的实体对象通常有一个属性,指示数据库中底层数据列的长度。这在数据绑定情况下非常有用,例如,您可以在文本框上设置MaxLength属性,以限制用户输入的输入长度 我找不到一种使用LINQtoSQL获取底层数据列长度的方法。有人知道这样做的方法吗?请提供帮助。使用LINQ COLUMN属性从数据库中获取字段长度: 谢谢。实际上,这两个答案似乎都有效。不幸的是,他们似乎在查看代码生成时

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


我找不到一种使用LINQtoSQL获取底层数据列长度的方法。有人知道这样做的方法吗?请提供帮助。

使用LINQ COLUMN属性从数据库中获取字段长度:


谢谢。实际上,这两个答案似乎都有效。不幸的是,他们似乎在查看代码生成时生成的Linq属性。虽然这似乎是正确的做法,但在我的情况下,我们销售软件产品,有时客户会扩展一些列的长度以容纳他们的数据。因此,使用此技术报告的字段长度可能并不总是反映基础数据列的真实长度。哦,这不是SQL的错,是吗?:)


谢谢你的快速回答

如果需要知道确切的列长度,可以求助于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 );

}