Home Full Site
LINQ to SQL : INSERT

SQL 테이블에 LINQ를 이용해 데이타를 INSERT하는 방법은 먼저 LINQ 레코드 클래스 객체를 생성한 후, 이를 LINQ 테이블 클래스 객체에 InsertOnSubmit() 메서드를 써서 추가한 후, 마지막으로 DataContext객체의 SubmitChanges() 메서드를 호출하면 된다.

예제

MyDBDataContext db = new MyDBDataContext();

// 새 레코드 객체 생성
Member mem = new Member();
mem.MemberId = 1;
mem.Name = "Alex";
mem.Address = "Seattle, WA";

// 레코드객체를 테이블객체에 추가
db.Members.InsertOnSubmit(mem);

// 서버에 전송
db.SubmitChanges();

  • SQL 서버에 [Member]라는 테이블을 만들고 이를 .dbml에 포함시키면, [Members]라는 테이블 클래스와 [Member]라는 레코드 클래스가 생성된다. 테이블 클래스는 레코드들의 집합이라는 의미로 항상 복수를 취한다.


LINQ to SQL : UPDATE

LINQ를 이용해 데이타를 UPDATE하는 방법은 LINQ 레코드 객체의 속성을 갱신한 후 DataContext객체의 SubmitChanges() 메서드를 호출하면 된다. 즉, 먼저 해당 레코드를 LINQ Query를 이용해 가져온 후, 이 객체의 속성을 변경한 후 Submit하는 것이다.

예제

MyDBDataContext db = new MyDBDataContext();

// 갱신한 레코드 선택
var m = db.Members.Where(p => p.MemberId == 1).SingleOrDefault();
if (m != null)
{
    // 갱신
    m.Name = "Alex L";
    m.Address = "Redmond, WA";

    // 서버에 저장
    db.SubmitChanges();
}



LINQ to SQL : DELETE

데이타 삭제하기 위해서는 삭제할 LINQ 레코드(들)을 쿼리를 이용해 선별한 후, 단일 레코드일 경우는 DeleteOnSubmit() 메서드를, 복수 레코드일 경우는 DeleteAllOnSubmit() 메서드를 호출하여 삭제 표시를 한후 SubmitChanges() 메서드를 호출하여 서버에서 삭제한다.

예제

MyDBDataContext db = new MyDBDataContext();

// 단일 레코드를 지울 경우
var mSingle = db.Members.Where(p => p.MemberId == 1).SingleOrDefault();
if (mSingle != null)
{
    db.Members.DeleteOnSubmit(mSingle);
    db.SubmitChanges();                
}

// 복수 레코드를 지울 경우
var m = db.Members.Where(p => p.MemberId > 100);
db.Members.DeleteAllOnSubmit(m);
db.SubmitChanges();



© csharpstudy.com