이제 본격적으로 시작해 보죠.

앞의 내용들을 다 하고 나면
LINQ to SQL 클래스 만들때 넣은 이름+Context라는 클래스를 사용할수 있어요.

먼저 간단한 select부터 해볼께요.


             using (DataClasses1DataContext db = new DataClasses1DataContext())
            {
                var r01 = from x in db.LINQTEST
                          where x.age > 20
                          select x;

                foreach (var x in r01)
                {
                    Console.WriteLine(x.name);
                }
            }

LINQ to SQL 클래스를 쓰는거 말고는
전에 했던 LINQ to Object와 별 차이가 없네요

위 코드는
LINQTEST 테이블에서 age가 20보다 큰 x를 가져와서
x의 name을 출력하는 거에요.

이렇게 나오네요.

뭐. 설명하고 자시고 할것도 없네요.

이번에는 insert를 해볼께요.
먼저 코드
            using (DataClasses1DataContext db = new DataClasses1DataContext())
            {
                //객체를 만듭니다
                LINQTEST newData = new LINQTEST();
                //데이터를 넣습니다
                newData.name = "피요히코";
                newData.age = 30;
                newData.comment = "추가된 데이터입니다.";
                //변경된 내용을 반영합니다.
                db.LINQTEST.InsertOnSubmit(newData);
                db.SubmitChanges();
            }

순서는
1. insert할 객체를 만들고
2. 데이터를 넣고
3. 적용시킨다

입니다.

주의해야 할건
1. 테이블에는 항상 기본키가 잡혀 있어야 한다.
2. 변경내용은 SubmitChanges()를 해야 적용된다.
입니다.

LINQ to SQL 클래스를 사용하면 인텔리센스를 통해서 table과 column등에 접근할수 있으므로
정말 편하게 쿼리를 날릴수 있어요.

코드 자체는 어렵지 않으니
update와 delete 하는건 코드만 보고 넘어가도 될꺼 같네요.
(몇몇 중요해 보이는 부분은 주석으로 설명을 해둘꼐요)

update

            using (DataClasses1DataContext db = new DataClasses1DataContext())
            {
                var searchItem = (from x in db.LINQTEST
                                  where x.name == "피요히코"
                                  select x).SingleOrDefault();
                //Single()로 검색할경우 해당값이 없으면 Exception발생
                //SingleOrDefault()의 경우는 값 없을때 Null 리턴

                if (searchItem != null)
                {
                    //searchItem이 null이 아닌경우 comment를 변경
                    searchItem.comment = "변경되었어요.....";
                }

                //변경내용 확인
                var r01 = (from x in db.LINQTEST
                           where x.name == "피요히코"
                           select x).SingleOrDefault();
                Console.WriteLine(r01.comment);
            }

delete
            using (DataClasses1DataContext db = new DataClasses1DataContext())
            {
               var searchItem = (from x in db.LINQTEST
                                  where x.name == "피요히코"
                                  select x).SingleOrDefault();

                //삭제
                db.LINQTEST.DeleteOnSubmit(searchItem);
                db.SubmitChanges();

                //결과확인
                var searchItem2 = (from x in db.LINQTEST
                                  where x.name == "피요히코"
                                  select x).SingleOrDefault();
                if (searchItem2 == null)
                {
                    Console.WriteLine("지워졌다. ㅠㅠ");
                }
                else
                    Console.WriteLine(searchItem2.name);
            }

출처?는 김수영MVP님의 주말특강입니다
by 피요히코~ 2009. 4. 26. 21:05
| 1 |