문제

저는 한동안 Linq to SQL을 사용해 왔으며 이것이 정말 유용하고 사용하기 쉽다는 것을 알았습니다.과거에 사용한 다른 ORM 도구의 경우 데이터베이스에서 채워진 엔터티 개체에는 일반적으로 데이터베이스의 기본 데이터 열 길이를 나타내는 속성이 있습니다.이는 예를 들어 사용자가 입력한 입력 길이를 제한하기 위해 텍스트 상자에 MaxLength 속성을 설정할 수 있는 데이터 바인딩 상황에 유용합니다.

Linq to SQL을 사용하여 기본 데이터 열의 길이를 얻는 방법을 찾을 수 없습니다.누구든지 이 작업을 수행하는 방법을 알고 있습니까?도와주세요.

도움이 되었습니까?

해결책

LINQ ColumnAttribute를 사용하여 데이터베이스에서 필드 길이 가져오기:

http://www.codeproject.com/KB/cs/LinqColumnAttributeTricks.aspx

다른 팁

감사해요.실제로 이 두 가지 답변이 모두 작동하는 것 같습니다.불행하게도 그들은 코드 생성이 완료되었을 때 생성된 Linq 속성을 보는 것 같습니다.그것이 옳은 일인 것처럼 보이지만, 제 상황에서는 소프트웨어 제품을 판매하고 때로는 고객이 데이터를 수용하기 위해 일부 열 길이를 확장하기도 합니다.따라서 이 기술을 사용하여 보고된 필드의 길이는 기본 데이터 열의 실제 길이를 항상 반영하는 것은 아닙니다.아 글쎄요, Linq to 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 );

}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top