LINQ 정리노트 (3)
![]() | 거침없이 배우는 LINQ - ![]() Fabrice Marguerie 외 지음, 이준석 옮김/지&선(지앤선) |
드디어 'Chap. 6 LINQ to SQL을 시작하기'로 접어들었다. LINQ에 관련한 서적답게 개발배경과 내부 구현 코드를 분석하면서 LINQ에 대해 자세히 소개하고 있다. 프로그래밍을 막 시작한 초보자에게는 너무 어려운 책이고 적어도 C#이나 VB.NET 문법에 익숙하고 ADO.NET을 이용해 DB 연동 프로그래밍을 해본 중급이상에게 적당한 난이도의 책이라는 생각이 든다. 실제로 LINQ에서 사용되는 Lambda 코드는 가독성이 그리 녹녹한 언어가 아니라는게 대다수의 의견인 듯하고, 업무에 실제 적용하기에는 문법적 지식 외에 커스터마이징이나 DataSet이나 Entity Framework와의 연합이 효율적이라고 책에도 나와 있는 만큼 내부 구현 코드와 SQL에 조금 정통할 필요가 있어보인다.
Chapter 6. LINQ to SQL 시작하기
p.253 ~ p.289
1. 객체 매핑
using System.Data.Linq.Mapping;
■ 속성 (Attribute) 사용
1) [Table] 속성
[Table] : 선언된 클래스와 테이블명이 같을 경우 자동 매핑
[Table(Name="table_name")] : 지정된 테이블을 선언된 클래스와 매핑
2) [Column] 속성
[Column] : 선언된 property 와 동일한 컬럼명일 경우 자동 매핑
[Column(Name="column_name")] : 지정된 컬럼을 property와 매핑
[Column(IsPrimaryKey=true)] : 기본키 지정. 테이블은 반드시 기본키를 포함.
[Column(CanBeNull=true)] : NULL 허용
2. DataContext
using System.Data.Linq;
: MS-SQL Server 연결
1 2 | DataContext dataContext = new DataContext("ConnectionString"); Table<ClassType> obj = dataContext.GetTable<ClassType>(); | cs |
SQL Server에 연결하여 테이블에 저장된 데이터를 Table<> 형태의 기본 컬렉션 객체에게 전송
3. 객체 트리
개념모델 (Object 기반)과 논리모델(Table 기반)간 매핑
[Association] 속성(Attribute) 사용
1 2 | [Association(OtherKey="RefPropertyName")] public EntitySet<Type> ProrertyName { get; set; } | cs |