2015. 7. 2. 17:55
C# with LINQ to SQL
이번 포스트에서는 LINQ to SQL 에서 생성 된 sql 문을 확인 해 보도록 하겠습니다.
windows form 타입을 기준으로 알아 보도록 하겠습니다.
1. dbContext.Log = Console.Out;
가장 간단하게는 다음과 같이 작업해 주시면 됩니다.
northwindDataContext dbContext = new northwindDataContext(); dbContext.Log = Console.Out; // 출력창에 sql 문을 출력하는 명령문 dataGridView1.DataSource = dbContext.Customers;
[Get Data] 버튼을 클릭시 출력창에 나오는 sql 문입니다.
만약 웹 페이지에서 작업을 한다면 위 구문을 다음으로 변경합니다.
dbContext.Log = Response.Out;
2. 문자열을 Trace.WriteLine 을 이용해서 출력창에 쿼리문을 보이는 방법
1번 쿼리와 데이타 쿼리 결과가 같으며 출력창에 보이는 쿼리도 같습니다.
northwindDataContext dbContext = new northwindDataContext(); var linqQuery = from customer in dbContext.Customers select customer; string strQuery = linqQuery.ToString(); Trace.Listeners.Add(new TextWriterTraceListener(Console.Out)); Trace.AutoFlush = true; Trace.WriteLine(strQuery); // 출력창에 sql 문을 출력하는 명령문 dataGridView1.DataSource = linqQuery;
3. DataContext.GetCommand.CommandText 를 이용하는 방법
northwindDataContext dbContext = new northwindDataContext(); var linqQuery = from customer in dbContext.Customers select customer; string strQuery = dbContext.GetCommand(linqQuery).CommandText; Trace.Listeners.Add(new TextWriterTraceListener(Console.Out)); Trace.AutoFlush = true; Trace.WriteLine(strQuery); // 출력창에 sql 문을 출력하는 명령문 dataGridView1.DataSource = linqQuery;
4. SQL Profiler를 이용하는 방법
위에서 설명한 방법들이 프로그램 파트에서 이루어진 부분이라면 지금은 디비 파트에서 실행되는 명령어를 프로파일러를 이용해서 캡쳐한 것입니다.
어떤 방법을 이용하든 생성된 sql 문은 동일합니다.
전체 소스
'C# with LINQ to SQL' 카테고리의 다른 글
LINQ - 스토어드 프로시저를 이용한 insert, update, delete 연산 (0) | 2015.07.07 |
---|---|
LINQ - 스토어드 프로시저 호출 (select) (0) | 2015.07.06 |
LINQ - 4칙 연산(select, insert, update, delete) - DataGridView 이용 (0) | 2015.07.01 |
LINQ - 로그인창 적용 (0) | 2015.06.25 |
LINQ - 조인(내부조인, 그룹조인, 왼쪽 우선 외부 조인) (0) | 2015.06.22 |