삽입, 업데이트 및 삭제 작업(LINQ to SQL)

LINQ to SQL에서는 개체 모델에서 개체를 추가, 변경 및 제거함으로써 Insert, Update 및 Delete 작업을 수행합니다. 기본적으로 LINQ to SQL에서는 사용자 작업을 SQL로 변환하여 데이터베이스로 변경 내용을 전송합니다.

LINQ to SQL에서는 개체에 대한 변경 내용을 조작하고 유지하는 데 최대한의 유연성을 제공합니다. 엔터티 개체를 쿼리를 통해 검색하거나 새로 생성하여 사용할 수 있으면 응용 프로그램에서 해당 개체를 일반적인 개체로 변경할 수 있습니다. 즉, 해당 값을 변경하고 컬렉션에서 추가 및 제거할 수 있습니다. LINQ to SQL에서는 변경 내용을 추적하여 SubmitChanges를 호출할 때 변경 내용을 데이터베이스로 다시 전송할 수 있도록 준비합니다.

참고참고

LINQ to SQL에서는 하위 삭제 작업을 지원하거나 인식하지 않습니다.제약 조건이 적용된 테이블에서 행을 삭제하려면 데이터베이스의 외부 키 제약 조건에 ON DELETE CASCADE 규칙을 설정하거나 직접 작성한 코드를 사용하여 부모 개체를 삭제할 수 없게 하는 자식 개체를 먼저 삭제해야 합니다. 이렇게 하지 않으면 예외가 throw됩니다.자세한 내용은 방법: 데이터베이스에서 행 삭제(LINQ to SQL)를 참조하십시오.

다음에 인용된 예제에서는 Northwind 샘플 데이터베이스의 Customer와 Order 클래스를 사용합니다. 간결하게 나타내기 위해 클래스 정의는 표시하지 않았습니다.

Dim db As New Northwnd("…\Northwnd.mdf")

Dim cust As Customer = _
(From c In db.Customers _
Where c.CustomerID = "ALFKI" _
Select c) _
.First()

' Change the name of the contact.
cust.ContactName = "New Contact"

' Create and add a new Order to Orders collection.
Dim ord As New Order With {.OrderDate = DateTime.Now}
cust.Orders.Add(ord)

' Delete an existing Order.
Dim ord0 As Order = cust.Orders(0)

' Removing it from the table also removes it from 
' the Customer’s list.
db.Orders.DeleteOnSubmit(ord0)

' Ask the DataContext to save all the changes.
db.SubmitChanges()
Northwnd db = new Northwnd(@"c:\Northwnd.mdf");

// Query for a specific customer.
var cust =
    (from c in db.Customers
     where c.CustomerID == "ALFKI"
     select c).First();

// Change the name of the contact.
cust.ContactName = "New Contact";

// Create and add a new Order to the Orders collection.
Order ord = new Order { OrderDate = DateTime.Now };
cust.Orders.Add(ord);

// Delete an existing Order.
Order ord0 = cust.Orders[0];

// Removing it from the table also removes it from the Customer’s list.
db.Orders.DeleteOnSubmit(ord0);

// Ask the DataContext to save all the changes.
db.SubmitChanges();

SubmitChanges를 호출하면 LINQ to SQL에서는 변경 내용을 데이터베이스로 다시 전송하는 SQL 명령을 자동으로 생성하여 실행합니다.

참고참고

일반적으로 저장 프로시저와 같은 사용자 지정 논리를 사용하여 이러한 동작을 재정의할 수 있습니다.자세한 내용은 기본 동작을 재정의할 때의 요구 사항(LINQ to SQL)을 참조하십시오.

Visual Studio를 사용하는 개발자는 개체 관계형 디자이너를 사용하여 이 용도로 저장 프로시저를 개발할 수 있습니다.자세한 내용은 다음을 참조하십시오. O/R 디자이너(개체 관계형 디자이너)O/R 디자이너(개체 관계형 디자이너)O/R 디자이너(개체 관계형 디자이너).

참고 항목

개념

샘플 데이터베이스 다운로드(LINQ to SQL)

기타 리소스

삽입, 업데이트 및 삭제 작업 사용자 지정(LINQ to SQL)