저장 프로시저를 O/R 디자이너 에 추가하고 일반적인 DataContext 메서드로 실행할 수 있습니다. 기본 LINQ to SQL 런타임 동작, 즉 엔터티 클래스에서 데이터베이스로 변경 내용을 저장할 때 삽입, 업데이트 및 삭제를 수행하는 SubmitChanges 메서드를 호출하는 경우의 동작을 재정의하는 데에도 사용할 수 있습니다.
비고
저장 프로시저가 클라이언트로 다시 보내야 하는 값(예: 저장 프로시저에서 계산된 값)을 반환하는 경우 저장 프로시저에 출력 매개 변수를 만듭니다. 출력 매개 변수를 사용할 수 없는 경우 O/R 디자이너에서 생성된 재정의를 사용하는 대신 부분 메서드 구현을 작성합니다. 데이터베이스 생성 값에 매핑된 멤버는 성공적으로 완료 INSERT
되거나 UPDATE
작업이 완료되면 적절한 값으로 설정해야 합니다. 자세한 내용은 기본 동작을 재정의하는 개발자의 책임을 참조하세요.
비고
LINQ to SQL은 ID(자동 증가), rowguidcol(데이터베이스에서 생성된 GUID(Globally Unique Identifier) 및 타임스탬프 열에 대해 데이터베이스 생성 값을 자동으로 처리합니다. 다른 열 형식의 데이터베이스 생성 값은 예기치 않게 null 값이 발생합니다. 데이터베이스 생성 값을 반환하려면 수동으로 trueAutoSync 로 설정하고 AutoSync.Always, AutoSync.OnInsert 또는 AutoSync.OnUpdate 중 하나로 설정 IsDbGenerated 해야 합니다.
엔터티 클래스의 업데이트 동작 구성
기본적으로 LINQ to SQL 엔터티 클래스의 데이터를 변경하여 데이터베이스(삽입, 업데이트 및 삭제)를 업데이트하는 논리는 LINQ to SQL 런타임에서 제공됩니다. 런타임은 테이블의 스키마(열 및 DELETE
기본 키 정보)를 기반으로 하는 기본 INSERT
UPDATE
및 명령을 만듭니다. 기본 동작이 필요하지 않은 경우 테이블의 데이터를 조작하는 데 필요한 삽입, 업데이트 및 삭제를 수행하기 위해 특정 저장 프로시저를 할당하여 업데이트 동작을 구성할 수 있습니다. 기본 동작이 생성되지 않은 경우(예: 엔터티 클래스가 뷰에 매핑되는 경우) 이 작업을 수행할 수도 있습니다. 마지막으로 데이터베이스에 저장 프로시저를 통해 테이블 액세스가 필요한 경우 기본 업데이트 동작을 재정의할 수 있습니다.
비고
이 문서의 지침은 Visual Studio에서 사용할 수 있는 IDE(대화형 개발 환경)의 최신 버전을 보여 줍니다. 컴퓨터에 일부 사용자 인터페이스 요소에 대한 다른 이름 또는 위치가 표시될 수 있습니다. 다른 버전의 Visual Studio 또는 다른 환경 설정을 사용할 수 있습니다. 자세한 내용은 IDE 개인 설정참조하세요.
엔터티 클래스의 기본 동작을 재정의하는 저장 프로시저를 할당하려면
디자이너에서 LINQ to SQL 파일을 엽니다. (솔루션 탐색기
.dbml
에서 파일을 두 번 클릭합니다.)서버 탐색기 또는 데이터베이스 탐색기에서 저장 프로시저를 확장하고 엔터티 클래스의 삽입, 업데이트 및/또는 삭제 명령에 사용할 저장 프로시저를 찾습니다.
저장 프로시저를 O/R 디자이너로 끌어옵니다.
저장 프로시저는 메서드 창에 메서드로 DataContext 추가됩니다. 자세한 내용은 DataContext 메서드(O/R 디자이너)를 참조하세요.
업데이트를 수행하기 위해 저장 프로시저를 사용할 엔터티 클래스를 선택합니다.
속성 창에서 재정의할 명령을 선택합니다(삽입, 업데이트 또는 삭제).
런타임 사용 단어 옆에 있는 줄임표(...)를 클릭하여 동작 구성 대화 상자를 엽니다.
사용자 지정을 선택합니다.
사용자 지정 목록에서 원하는 저장 프로시저를 선택합니다.
메서드 인수 및 클래스 속성 목록을 검사하여 메서드 인수가 적절한 클래스 속성에 매핑되는지 확인합니다. 원래 메서드 인수(
Original_<ArgumentName>
)를Update
및Delete
명령에 대한 원래 속성(<PropertyName> (Original)
)에 매핑합니다.비고
기본적으로 메서드 인수는 이름이 일치할 때 클래스 속성에 매핑됩니다. 변경된 속성 이름이 테이블과 엔터티 클래스 간에 더 이상 일치하지 않는 경우 디자이너가 올바른 매핑을 확인할 수 없는 경우 매핑할 동등한 클래스 속성을 선택해야 할 수 있습니다.
클릭 확인 또는 적용합니다.
비고
각 변경 후 적용 을 클릭하는 한 각 클래스 및 동작 조합에 대한 동작을 계속 구성할 수 있습니다. 적용을 클릭하기 전에 클래스 또는 동작을 변경하면 경고 대화 상자가 나타나고 변경 내용을 적용할 수 있는 기회가 제공됩니다.
업데이트에 기본 런타임 논리를 사용하도록 되돌리려면 속성 창에서 삽입, 업데이트 또는 삭제 명령 옆에 있는 줄임표를 클릭한 다음 동작 구성 대화 상자에서 런타임 사용을 선택합니다.