更新时LINQ to SQL自动插入行复制

时间:2009-04-10 14:40:25

标签: c# linq linq-to-sql exception

我正在使用这个简单的代码来尝试更新一行

    var MyDB = new SKN2DataContext();
    var s_case = MyDB.SupportCases.FirstOrDefault(sc => sc.Id == 3);
    s_case.OpenDate = DateTime.Now;
    MyDB.SubmitChanges();

在最后一行,我遇到以下异常

  

对象的成员'Id'的值   类型'SupportCase'已更改。成员   定义对象的身份   无法改变。考虑添加一个   具有新身份和新身份的新对象   删除现有的。

当我通过在QuickWatch中调用GetChangeList来查看正在发生的事情时,它表示DataContext正在尝试执行和更新(我期望)以及插入同一行(WHY ???)。我无法弄清楚为什么DataContext正在尝试插入。

编辑只是为了记录,OpenDate不包含在主键中。

2 个答案:

答案 0 :(得分:0)

主键的OpenDate部分是什么?我先看看那里。

s_case不是null吗?

答案 1 :(得分:0)

  • 隔离您正在使用的代码,以确保没有其他因素导致它(如共享上下文)
  • 在linq2sql设计器中重新添加表。