質問

変更を記録に保存しようとしていますが、エラーが発生しています

主要な制約「PK_TSTOREASSINMENT」の違反。オブジェクト「タジネーション」に重複キーを挿入できません。ステートメントは終了されました。

これが亜音速クエリです

Dim current = DB.Select().From(TStoreAssignment.Schema) _
                                 .Where("assignmentID").IsEqualTo(selectedRow.AssignmentID) _
                                 .ExecuteSingle(Of TStoreAssignment)()

'Modify the sequence
 current.ManualSequence = 999
 current.Save()
役に立ちましたか?

解決

このエラーには2つの可能性があります。

  • また ManualSequence の主要な鍵です TStoreAssignment, 、そしてあなたはすでに999の他のエントリを持っています
  • または(おそらく)亜音速の考え方 current 新しいオブジェクトであり、電話するときに更新する代わりに挿入しようとします Save(). 。デバッグして確認できます IsNew財産。その場合は、電話することができます MarkOld() の前に Save 方法。またはさらに良いことに、次のようなものを使用します

    DB.Update().From(Of TStoreAssignment)() _
        .Set(TStoreAssignment.ManualSequenceColumn).EqualTo(999) _
        .Where(TStoreAssignment.AssignementIDColumn).IsEqualTo(selectedRow.AssignmentID) _
        .Execute()
    
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top