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를 참조하세요.