rowversion 또는 timestamp없이 Sql 테이블을 사용하고 있습니다. 그러나 Linq를 사용하여 테이블의 특정 값을 업데이트해야합니다.TimeStamp 및 StoredProcedures가없는 Linq SubmitChanges 사용
Public Sub SaveCustomer(ByVal cust As Customer)
Using dc As New AppDataContext()
If (cust.Id > 0) Then
Dim tempCust As Customer = Nothing
Using dc2 As New AppDataContext()
tempCust = dc2.Customers.Single(Function(c) c.Id = cust.Id)
End Using
dc.Customers.Attach(cust, tempCust)
Else
dc.Customers.InsertOnSubmit(cust)
End If
dc.SubmitChanges()
End Using
End Sub
를이 수행하는 동안 : Linq에, 나는 데이터베이스에서 현재 객체를 검색하고 그래서 같은 방법을 첨부 입력으로 데이터베이스와 실제 객체를 모두 사용하는 두 번째의 DataContext를 사용하고 업데이트 할 값 알 수 없기 때문에 작업, 나는 문제가 : 나는 또한 특정 시간에 고객의 일부 필드를 업데이 트 StoredProcedures를 사용하고 있습니다. 다른 고객 필드를
를 업데이트 할 새 값
- 가져 오기 고객 : 이제 다음 워크 플로우를 상상 이제 SaveCustomer 메서드는 코드에서 설정된 값을 포함하지 않지만 저장 프로 시저에서 설정 한 값을 포함하는 데이터베이스에서 현재 개체를 검색합니다. 이것을 실제 객체에 첨부하고 제출하면 코드에서 데이터베이스에 설정된 값을 업데이트하고 ... tadaaaa ... 다른 객체는 NULL로 설정합니다. 실제 객체에는 저장 프로 시저.
이해할 수 있었습니까?
이 문제를 해결하는 가장 좋은 방법이 있습니까?
확실히 합리적이라고 생각합니다. 그러나 나는 고객의 데이터베이스와 인프라에 맞서 노력하고 있으며, 데이터베이스의 대부분이 동적으로 생성되고 자체 프레임 워크를 사용하여 액세스하기 때문에 rowversionioning을 도입하지 않을 것입니다. 그러나 린크 (Linq)가 무엇인지 보여주기 위해 정적 인 유일한 테이블에 대해 린크 (Linq)와 함께 작업 할 기회를 얻었습니다. ;-) 이제 SP 때문에 문제가 발생했습니다. 이 컨텍스트에서 동시성 검사에 대해 배울 수있는 좋은 소스가 있습니까? – Mephisztoe