반응형

 
이 포스트는 월간 마이크로소프트웨어에 기고한 원고를 재편집한 포스트입니다. 그러므로, 본의 아니게 반말로 진행되고 있습니다. 원래 싸가지가 없어서 그런 것이 아니니 무한 용서를... ^^;;
또한, .NET Framework 3.5 SP1이 적용되기 이전의 소스이므로, 현재의 개발 환경과 다를 수 있습니다. 마소에 제출한 블로그 소스는 블로그 소스 다운로드에서 다운로드하실 수있습니다.

LINQ to SQL Classes의 생성

필자가 설명하는 블로그에서 데이터베이스에 포함된 각 테이블과의 연결은 Visual Studio 2008에 새로 추가된 템플릿 중의 하나인 "LINQ to SQL Classes"를 사용하도록 하겠다. "LINQ to SQL Classes"은 .NET Framework 3.5에 내장된 O/RM(object relational mapper)으로, .NET 클래스들을 사용하여 관계가 있는 데이터베이스로의 연결을 가능하게 해주는 템플릿이다. 웹 사이트 이름에서 우측 마우스를 클릭하여 “새 항목 추가(Add New Item...)" 메뉴를 선택하여 <화면 1>과 같이 "LINQ to SQL Classes" 템플릿을 선택하고, 템플릿의 이름을 "BlogDataClasses.dbml"로 변경한 후 "추가(Add)" 버튼을 클릭하여 "LINQ to SQL Classes" 템플릿을 추가한다. App_Code 폴더가 없으므로, App_Code 폴더로 추가할 것이냐는 알림 창이 뜨게 될 것이다. 확인 버튼을 클릭하면 App_Code 폴더가 생성되며, "BlogDataClasses.dbml" 파일이 App_Code 폴더 아래로 추가되게 된다.


<화면 1> "LINQ to SQL Classes" 템플릿 추가

"LINQ to SQL Classes" 템플릿을 추가하게 되면, 템플릿에 데이터베이스에 있는 테이블, 뷰, 저장 프로시저, 사용자 정의 함수 등을 추가할 수 있는 디자이너 화면이 나타나게 된다. 디자이너 화면은 2개의 영역으로 구분되어 있으며, 좌측의 영역에는 테이블 및 뷰를 추가할 수 있고 우측의 영역에는 저장 프로시저 및 사용자 정의 함수 등을 추가할 수 있다. 이제, 생성한 "BlogDataClasses.dbml" 파일로 사용할 테이블의 정보를 추가하기 위해서, "서버 탐색기(Server Explorer)"의 "데이터 연결(DataConnection)"에서 우측 마우스를 클릭하여, "연결 추가(Add Connection)" 메뉴를 선택한다. 그러면, 데이터 소스를 선택하는 <화면 2>가 보이게 된다.


<화면 2> 데이터 소스 선택 화면

데이터 소스 선택 화면에서 "Microsoft SQL Server"를 선택한 후, "계속(Continue)" 버튼을 클릭하면, <화면 3>과 같은 연결 추가 화면이 나타나게 된다.


<화면 3> 연결 추가 화면

연결 추가 화면에서 서버명(Server Name)은 SQL Server가 위치한 서버명을 입력하면 되고, 서버로의 로그온 방식(Log on to the server)는 윈도우 인증 또는 SQL Server 인증 방식 중 하나를 선택하면 되겠다. SQL Server 인증 방식을 사용할 경우에는 로그온할 사용자명과 비밀번호를 입력하여야 하며, 로그온 방식을 선택한 후에는 연결이 정확한 지를 확인하기 위해 화면 좌측 하단의 연결 테스트(Test Connection)을 눌러 연결이 정확하게 되는지를 확인한다. 연결이 정확한 것을 확인하였으면, 연결할 데이터베이스명을 선택 또는 입력한 후 "확인(OK)" 버튼을 클릭하여 연결 추가 화면을 종료하도록 한다. 서버 탐색기(Server Explorer)에 방금 추가한 연결 정보가 추가된 것을 <화면 4>와 같이 확인할 수 있으며, 지난 호에서 생성한 테이블들이 포함되어 있는 것을 확인할 수 있다.


<화면 4> 추가된 연결 정보 화면

<화면 4>에서 보여지고 있는 테이블들을 "BlogDataClasses.dbml" 파일 디자이너의 좌측 영역으로 드래그 앤 드랍하면, <화면 5>와 같이 "BlogDataClasses.dbml" 파일로 테이블의 스키마가 추가되게 된다. 이 때, 각 테이블간의 관계 등도 같이 표시되게 되며 필자는 "BlogDataClasses.dbml" 파일로 추가된 테이블 스키마 정보를 바탕으로 LINQ 쿼리를 사용하여, 블로그의 데이터 정보를 관리할 것이다.


<화면 5> "LINQ to SQL Classes" 템플릿 디자이너에 테이블이 추가된 화면

블로그 프로그래밍에 관련된 기본적인 정보를 2개의 테이블에 입력하도록 한다. 먼저, 관리자로 로그인하기 위한 정보를 입력하기 위해, 다음과 같은 쿼리를 실행하여 관리자 정보를 BLOG_USERINFO 테이블에 데이터를 입력한다.

INSERT INTO BLOG_USERINFO VALUES ('neostyx', 'neostyx')

또한, 포스트를 작성하는 경우 CategoryID값이 반드시 필요하게 되므로, 임의로 BLOG_CATEGORIES 테이블에 다음과 같은 쿼리를 실행하여 데이터를 입력한다.

INSERT INTO BLOG_CATEGORIES VALUES ('ASP.NET', 1, GETDATE(), NULL)



Creative Commons License
저작물크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
반응형

+ Recent posts