SubmitChanges()를 호출하는 등의 단순화 된 형태로 모양이Linq는 SQL로 : 실행하기 위해 나는이 개 관련 데이터베이스 테이블을
외래 키는 PRODUCT_ID 필드를 통해 설정 및 ProductSpecs 테이블에 고유 제한 조건을 (가지고있다
Product(
product_id,
name
)
ProductSpecs(
spec_id,
product_id,
name,
value
)
product_id, name) 쌍으로 구성됩니다.
내 ASP.NET MVC 응용 프로그램에서 사용자가 제품 사양을 편집하고 데이터를 저장하면 이전 사양이 삭제되고 새 사양으로 모두 삽입됩니다.
먼저 DataContext.DeleteAllOnSubmit()을 호출하고 현재 (이전) ProductSpec을 매개 변수로 제공 한 다음 Product.ProductSpecs 컬렉션에 새 사양을 추가합니다.
그런 다음 DataContext.SubmitChanges()를 호출하고 내 고유 제한 조건이 위반되었다는 오류를받습니다.
DataContenxt.GetChangeText()에서 반환 한 SQL 문을 보면 DELETE 전에 INSERT가 실행 된 것을 볼 수 있습니다 (추가하기 전에 DeleteAllOnSubmit()을 호출 했음에도 불구하고).
이 동작의 이유와 해결 방법이나 해결 방법은 무엇입니까?
감사합니다.
DeleteAllOnSubmit을 호출 한 후 SubmitChanges()를 호출했지만 새 레코드를 추가하기 전에 시도한 적이 있습니까? – RobS
이것은 새로운 레코드가 잘못 삽입되었는지 확실히 알기 전에 레코드를 삭제합니다. 또는 SubmitChanges() 호출 후에도 롤백 할 수 있습니까? –
삽입 할 새 레코드가 없으면 트랜잭션 내부로 호출을 랩핑하고 롤백 할 수 있습니다. 삭제하기 전에 새 레코드가 있는지 확인할 수는 있지만 – RobS