2016-10-13 4 views
0

"MobClaim"への接続を持つテーブル "Claim"があります。 「クレーム」は0または1の「MobClaims」を持つことができます。私はLinqを使ってSQLに "MobClaim"を挿入すると同時に、 "Claim"を挿入する方法を見つけることができません。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を追加しようとすると、エラーが1つ発生します。私がMobClaimを別に追加しようとした後、クレーム上のDataIdを更新しようとすると、別のエラーが発生します。

答えて

0

実は、私はテーブルを変更してやって何てしまった...私は何をしようとしていたことは、これは

ました) 関係。

私はそれを変更:

A Claim.ClaimId(プライマリ) - > MobClaim.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

私はこれを試しましたが、おそらく私が使用しようとしていたカラム/キーのために動作しませんでした。 –

関連する問題