1

누군가가 여기에서 질문했습니다 :LINQ to SQL - 저장 프로 시저가 unsubmited datacontext 변경과 어떻게 상호 작용합니까?

"Linq-To-Sql이 SP를 호출 할 수 있습니다.이 SP가 업데이트/삭제/삽입을 실행하면 그 후에 SubmitChanges()를해야합니까?"

그 대답했다 :

. "아니 당신이 코드는 작동하지 않는 변경 사항을 제출 SQL 오브젝트에 수정 LINQ에만 관심이 있고 프록 저장되지 않습니다.."

(내가 LINQ에 비교적 새로운 해요, 저를 용서하십시오)

네,하지만하지 않습니다 저장 프로 시저 바이 패스 데이터 컨텍스트 개체를 데이터베이스 자체를 수정

난 그냥 명확히하고 싶습니다 ? (반면에 linq은 datacontext.submitchanges 메서드가 호출되어 데이터베이스를 수정하기 전까지 datacontext 객체 만 수정합니다.)

어떻게하면 datacontext 객체를 수정해야합니까? 벌써 했니?

내가 그것을 가질 수 그래서

  • 내가 (그리고 내가 직접 데이터베이스를 수정 있으리라 믿고있어) LINQ와 SP를 호출하는 경우,
  • 다음 내 데이터 컨텍스트 개체를 수정하는 LINQ를 사용하고, 내 datacontext 개체에 변경 한 내용을 제출,

내가 변경 한 두 가지 다른 변경 사항 (SP와 하나, 내 datacontext에 Linq 다른 하나) 방해하지 않습니다?

정말 원하는 것은 내 저장 프로 시저에서 내 datacontext를 수정하는 방법입니다. 이것이 가능한가?

SQL에서 웹 사이트를 주로 저장 프로 시저로 변환하고 LINQ로 변환하는 저장 프로 시저와 함께 내 전투를 선택하려고하며 SQL에 보관하고 SP를 호출하는 방법에 대해 언급해야합니다. LINQ.

답변

0

FWIW는, 우리의 리트머스 테스트가 삽입 어떤 사소한 'CRUD'형 PROC입니다, 당신의 도움을 -Jeff을 주셔서 감사합니다/하나의 기록은 우리가 경향이

그러나 ORM에 걸쳐 이동할 수 업데이트 더 진보 된 procs (일괄 업데이트 또는 고성능 민감한 procs)를 '있는 그대로'남겨두기.

하지만 그래, 당신이보고, 당신은 작업 단위를 제어해야하는 경우, DataContext를

아마 관련이없는에서 변경된 데이터의 상태에 의존하는 시저를 호출하기 전에()가 호출 SubmitChanges가 필요합니다 귀하의 코드 주위에 TransactionScopes 퍼팅?

+0

"작업 단위를 제어해야하는 경우 TransactionScopes 배치"를 참조하십시오.아니면 그냥 수동으로 연결을 열고, 트랜잭션을 시작한 다음 그 연결을'DataContext'의 생성자 중 하나에 제공하십시오. – Steven

0

저장된 프로 시저를 통해 레코드를 업데이트하면로드 된 (및 추적 된) 개체가 오래 될 수 있습니다. 부실 객체가있는 SubmitChanges를 호출하면 동시 처리 예외가 발생합니다. DataContextRefresh 메서드를 사용하여 부실 개체를 새로 고칠 수 있습니다.

관련 문제