2008-08-21 45 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); 

}