2016-10-13 9 views
0

"MobClaim"에 대한 연결로 "Claim"테이블이 있습니다. "클레임"은 0 또는 1 개의 "MobClaims"를 가질 수 있습니다. 나는 "주장"을 삽입하는 동시에 Linq를 사용하여 "MobClaim"을 삽입하는 방법을 알아낼 수 없습니다.Linq to SQL 자식 개체가있는 개체 추가

Dim newClaim As New Claim With {.ClaimTypeId = 1, 
           .DateCreated = DateTime.Now, 
           .ClaimStatusId = 2 
           } 
Dim newMobClaim = New MobClaim() With {.AccountNumber = data.AccountNumber} 

두 테이블의 기본 키에는 IDENTITY (1,1)가 있으므로 데이터베이스는 해당 ID를 생성합니다. MobClaimId (기본 키)는 Claim의 DataId (외래 키)에 연결됩니다. 클레임의 MobClaims 컬렉션에 MobClaim을 추가하려고하면 하나의 오류가 발생합니다. MobClaim을 별도로 추가하려고 시도한 다음 Claim에서 DataId를 업데이트하면 다른 오류가 발생합니다.

답변

0

사실, 난 테이블을 변경했다 뭘 결국 ... 내가 뭘하려고했던 것은이

했다) 관계. -> MobClaim.ClaimId 관계

Claim.ClaimId (주)

난으로 바꿨다.

그리고 지금은 다음과 같이 작동

Dim newClaim As New Claim With {.ClaimTypeId = 1, 
           .DateCreated = DateTime.Now, 
           .CreatedBy = 3, 
           .ClaimStatusId = 4 
           } 
newClaim.MobClaims.Add(New MobClaim() With {.AccountNumber = data.AccountNumber}) 

Using service As New ClaimsService 
    service.SaveClaim(newClaim) 'InsertOnSubmit/SaveChanges etc... 
End Using 

는 관계가 설정하고 어떻게 물건을 추가 할 수있는 방법에 대해 뭔가되어야합니다. 상위 테이블의 기본 키를 사용하고 하위 테이블의 외래 키에 연결해야 할 수도 있습니다.

0

먼저 기본 키가있는 키를 삽입 한 다음 다른 레코드의 외래 키를 자동 생성 기본 키로 설정하십시오.

사용하십시오 Claim.DataId -> MobClaim.MobClaimId (주 :

Using dc As New YourLinq2SqlDataContext() 

    Dim newMobClaim = New MobClaim() With 
     { 
      .AccountNumber = Data.AccountNumber 
     } 
    dc.MobClaims.InsertOnSubmit(newMobClaim) 
    dc.SubmitChanges() 

    Dim newClaim As New Claim With 
     { 
      .ClaimTypeId = 1, 
      .DateCreated = DateTime.Now, 
      .ClaimStatusId = 2, 
      .DataId = newMobClaim.MobClaimId 
     } 
    dc.Claims.InsertOnSubmit(newClaim) 
    dc.SubmitChanges() 

End Using 
+0

나는 이것을 시도했지만 아마도 사용하려고했던 열/키로 인해 작동하지 않았을 것이다. –