0

我正在尝试保存对记录的更改,但出现错误

违反 PRIMARY KEY 约束“PK_TStoreAssignment”。无法在对象“TAAssignment”中插入重复键。该语句已终止。

这是亚音速查询

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

'Modify the sequence
 current.ManualSequence = 999
 current.Save()
4

1 回答 1

1

我看到此错误有两种可能性:

  • 要么ManualSequence是 的主键(部分)TStoreAssignment,并且您已经有另一个条目 999
  • 或(可能)SubSonic 认为current是一个新对象,并在您调用Save(). 您可以调试和检查IsNew属性。如果是这种情况,您可以在方法MarkOld()之前调用Save。或者更好的是,使用类似的东西:

    DB.Update().From(Of TStoreAssignment)() _
        .Set(TStoreAssignment.ManualSequenceColumn).EqualTo(999) _
        .Where(TStoreAssignment.AssignementIDColumn).IsEqualTo(selectedRow.AssignmentID) _
        .Execute()
    
于 2011-05-04T20:52:53.513 回答