#title Visual Studio 2008에서 LINQ 사용하기
== 예제 ==
Visual Studio 2008을 이용해 LINQ To SQL을 테스트하는 간단한 예제이다.
=== DataList 컨트롤에 바인딩하기 ===
1. 테이블 생성, 여기서는 NickName 컬럼을 가진 Member라는 테이블을 사용한다.
1. 서버 탐색기(메뉴->보기->서버 탐색기)를 연 다음 DB서버 추가.
1. 솔루션 탐색기에서 추가->새 항목->데이터->LINQ to SQL 클래스 생성
1. 열려진 dbml 파일로 테이블을 끌어 넣고 저장한다.
1. 테스트할 aspx 페이지를 만든 다음 아래 태그를 넣는다.
{{{#!vim aspx
<%#Eval("nickname") %>
}}}
1. CS 파일(Code Behind)를 열어 아래 코드를 넣는다. 앞서 만든 파일 이름이 DataClasses1.dbml 이면
{{{#!vim cs
protected void Page_Load(object sender, EventArgs e){
DataClasses1DataContext db = new DataClasses1DataContext();
var query = from m in db.Member select m;
Grid1.DataSource = query;
Grid1.DataBind();
}
}}}
1. 해당 aspx 페이지에서 "웹 브라우저로 보기"하여 테스트한다.
=== XML 파일로 만들기 ===
다음 코드는 Linq에서 읽어들여 xml로 결과를 출력하는 예제이다.
{{{#!vim cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.Linq;
using System.Xml;
using System.Xml.Linq;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataClasses1DataContext db = new DataClasses1DataContext();
IEnumerable query = from m in db.Member select m;
Response.Buffer = false;
Response.Clear();
Response.ContentType = "application/xml";
using (XmlWriter writer = XmlWriter.Create(Response.OutputStream))
{
XElement xmlRoot = new XElement("root");
foreach (DataClasses1_Member q in query)
{
XElement xmlMember = new XElement("member",
new XAttribute("idx", q.idx),
new XElement("nickname", q.nickname),
new XElement("password", q.password),
new XElement("description", q.DataClasses1_Community.name) //FK 관계의 경우 자동으로 컬렉션 등록되기 때문에 굳이 JOIN문을 이용할 필요가 없다.
);
xmlRoot.Add(xmlMember);
}
xmlRoot.WriteTo(writer);
Response.Flush();
}
Response.End();
}
}
}
}}}
== 관련 문서 ==