다음을 통해 공유


Attribute-Based 매핑

LINQ to SQL은 특성을 적용하거나 외부 매핑 파일을 사용하여 SQL Server 데이터베이스를 LINQ to SQL 개체 모델에 매핑합니다. 이 항목에서는 특성 기반 접근 방식을 간략하게 설명합니다.

LINQ to SQL은 가장 기본적인 형식으로 데이터베이스를 클래스 DataContext에 매핑하고 열과 관계를 해당 클래스의 속성에 매핑합니다. 특성을 사용하여 개체 모델에서 상속 계층 구조를 매핑할 수도 있습니다. 자세한 내용은 방법: Visual Basic 또는 C#에서 개체 모델 생성을 참조하세요.

Visual Studio를 사용하는 개발자는 일반적으로 개체 관계형 디자이너를 사용하여 특성 기반 매핑을 수행합니다. SQLMetal 명령줄 도구를 사용하거나 특성을 직접 직접 코딩할 수도 있습니다. 자세한 내용은 방법: Visual Basic 또는 C#에서 개체 모델 생성을 참조하세요.

비고

외부 XML 파일을 사용하여 매핑할 수도 있습니다. 자세한 내용은 외부 매핑을 참조하세요.

다음 섹션에서는 특성 기반 매핑에 대해 자세히 설명합니다. 자세한 내용은 네임스페이스를 System.Data.Linq.Mapping 참조하세요.

DatabaseAttribute 속성

연결에서 이름을 제공하지 않을 때 데이터베이스의 기본 이름을 지정하려면 이 특성을 사용합니다. 이 특성은 선택 사항이지만 사용하는 경우 다음 표에 설명된 대로 속성을 적용 Name 해야 합니다.

재산 유형 기본값 설명
Name 문자열 Name를 참조하세요. 해당 Name 속성과 함께 사용되며 데이터베이스의 이름을 지정합니다.

자세한 내용은 DatabaseAttribute를 참조하세요.

테이블 속성

이 특성을 사용하여 클래스를 데이터베이스 테이블 또는 뷰와 연결된 엔터티 클래스로 지정합니다. LINQ to SQL은 이 특성이 있는 클래스를 영구 클래스로 처리합니다. 다음 표는 Name 속성을 설명합니다.

재산 유형 기본값 설명
Name 문자열 클래스 이름과 동일한 문자열 클래스를 데이터베이스 테이블과 연결된 엔터티 클래스로 지정합니다.

자세한 내용은 TableAttribute를 참조하세요.

ColumnAttribute 특성

데이터베이스 테이블의 열을 나타내는 엔터티 클래스의 멤버를 지정하려면 이 특성을 사용합니다. 모든 필드 또는 속성에 이 특성을 적용할 수 있습니다.

LINQ to SQL에서 변경 내용을 데이터베이스에 저장할 때 열로 식별하는 멤버만 검색되고 유지됩니다. 이 특성이 없는 멤버는 비영구적인 것으로 간주되며 삽입 또는 업데이트를 위해 제출되지 않습니다.

다음 표에서는 이 특성의 속성을 설명합니다.

재산 유형 기본값 설명
AutoSync AutoSync (자동 동기화) 절대 삽입 또는 업데이트 작업 후 값을 검색하도록 CLR(공용 언어 런타임)에 지시합니다.

옵션: 항상, 절대, 업데이트 시, 삽입 시.
CanBeNull 불리언 (Boolean) true 열에 null 값이 포함될 수 있음을 나타냅니다.
DbType 문자열 유추된 데이터베이스 열 형식 데이터베이스 형식 및 한정자를 사용하여 데이터베이스 열의 형식을 지정합니다.
Expression 문자열 비어 있는 데이터베이스에서 계산 열을 정의합니다.
IsDbGenerated 불리언 (Boolean) false 열에 데이터베이스가 자동으로 생성하는 값이 포함되어 있음을 나타냅니다.
IsDiscriminator 불리언 (Boolean) false 열에 LINQ to SQL 상속 계층 구조에 대한 판별자 값이 포함되어 있음을 나타냅니다.
IsPrimaryKey 불리언 (Boolean) false 이 클래스 멤버가 테이블의 기본 키 또는 일부인 열을 나타내게 지정합니다.
IsVersion 불리언 (Boolean) false 멤버의 열 형식을 데이터베이스 타임스탬프 또는 버전 번호로 식별합니다.
UpdateCheck UpdateCheck Always, 멤버용이 IsVersion 아닌 경우 true LINQ to SQL이 낙관적 동시성 충돌을 감지하는 접근 방식을 지정합니다.

자세한 내용은 ColumnAttribute를 참조하세요.

비고

AssociationAttribute 및 ColumnAttribute Storage 속성 값은 대/소문자를 구분합니다. 예를 들어 AssociationAttribute.Storage 속성의 특성에 사용된 값이 코드의 다른 위치에서 사용되는 해당 속성 이름의 대/소문자와 일치하는지 확인합니다. 이는 Visual Basic을 포함하여 일반적으로 대/소문자를 구분하지 않는 모든 .NET 프로그래밍 언어에도 적용됩니다. Storage 속성에 대한 자세한 내용은 다음을 참조하세요 DataAttribute.Storage.

AssociationAttribute 애트리뷰트 특성

이 특성을 사용하여 데이터베이스의 연결을 나타내는 속성을 지정합니다(예: 기본 키 관계에 대한 외래 키). 관계에 대한 자세한 내용은 방법: 데이터베이스 관계 매핑을 참조하세요.

다음 표에서는 이 특성의 속성을 설명합니다.

재산 유형 기본값 설명
DeleteOnNull 불리언 (Boolean) false 외래 키 멤버가 모두 null을 허용하지 않는 연결에 배치되면 연결이 null로 설정되면 개체를 삭제합니다.
DeleteRule 문자열 없음 연결에 삭제 동작을 추가합니다.
IsForeignKey 불리언 (Boolean) false true이면 데이터베이스 관계를 나타내는 연결에서 멤버를 외래 키로 지정합니다.
IsUnique 불리언 (Boolean) false true이면 외래 키에 대한 고유성 제약 조건을 나타냅니다.
OtherKey 문자열 관련 클래스의 ID 대상 엔터티 클래스의 하나 이상의 멤버를 연결의 다른 쪽에 있는 키 값으로 지정합니다.
ThisKey 문자열 포함하는 클래스의 ID 연결의 이 쪽에 있는 키 값을 나타내도록 이 엔터티 클래스의 멤버를 지정합니다.

자세한 내용은 AssociationAttribute를 참조하세요.

비고

AssociationAttribute 및 ColumnAttribute Storage 속성 값은 대/소문자를 구분합니다. 예를 들어 AssociationAttribute.Storage 속성의 특성에 사용된 값이 코드의 다른 위치에서 사용되는 해당 속성 이름의 대/소문자와 일치하는지 확인합니다. 이는 Visual Basic을 포함하여 일반적으로 대/소문자를 구분하지 않는 모든 .NET 프로그래밍 언어에도 적용됩니다. Storage 속성에 대한 자세한 내용은 다음을 참조하세요 DataAttribute.Storage.

InheritanceMappingAttribute 특성

상속 계층 구조를 매핑하려면 이 특성을 사용합니다.

다음 표에서는 이 특성의 속성을 설명합니다.

재산 유형 기본값 설명
Code 문자열 없음. 값을 제공해야 합니다. 판별자의 코드 값을 지정합니다.
IsDefault 불리언 (Boolean) false true이면 저장소의 판별자 값이 지정된 값 중 하나와 일치하지 않는 경우 이 형식의 개체를 인스턴스화합니다.
Type 유형 없음. 값을 제공해야 합니다. 계층 구조에서 클래스의 형식을 지정합니다.

자세한 내용은 InheritanceMappingAttribute를 참조하세요.

FunctionAttribute 속성

이 특성을 사용하여 데이터베이스의 저장 프로시저 또는 사용자 정의 함수를 나타내는 메서드를 지정합니다.

다음 표에서는 이 특성의 속성을 설명합니다.

재산 유형 기본값 설명
IsComposable 불리언 (Boolean) false false이면 저장 프로시저에 대한 매핑을 나타냅니다. true이면 사용자 정의 함수에 대한 매핑을 나타냅니다.
Name 문자열 데이터베이스의 이름과 동일한 문자열 저장 프로시저 또는 사용자 정의 함수의 이름을 지정합니다.

자세한 내용은 FunctionAttribute를 참조하세요.

ParameterAttribute 속성

저장 프로시저 메서드에 입력 매개 변수를 매핑하려면 이 특성을 사용합니다.

다음 표에서는 이 특성의 속성을 설명합니다.

재산 유형 기본값 설명
DbType 문자열 없음 데이터베이스 유형을 지정합니다.
Name 문자열 데이터베이스의 매개 변수 이름과 동일한 문자열 매개 변수의 이름을 지정합니다.

자세한 내용은 ParameterAttribute를 참조하세요.

ResultTypeAttribute 어트리뷰트

이 특성을 사용하여 결과 형식을 지정합니다.

다음 표에서는 이 특성의 속성을 설명합니다.

재산 유형 기본값 설명
Type 유형 (없음) 반환 IMultipleResults하는 저장 프로시저에 매핑된 메서드에 사용됩니다. 저장 프로시저에 대해 유효하거나 예상되는 형식 매핑을 선언합니다.

자세한 내용은 ResultTypeAttribute를 참조하세요.

DataAttribute 어트리뷰트

이 특성을 사용하여 이름 및 프라이빗 스토리지 필드를 지정할 수 있습니다.

다음 표에서는 이 특성의 속성을 설명합니다.

재산 유형 기본값 설명
Name 문자열 데이터베이스의 이름과 동일 테이블, 열 등의 이름을 지정합니다.
Storage 문자열 공용 접근자 기본 스토리지 필드의 이름을 지정합니다.

자세한 내용은 DataAttribute를 참조하세요.

참고하십시오