System.Data.Linq.ChangeConflictException?行未找到或更改?但是,我正在插入,而不是更新

时间:2015-09-08 19:26:57

标签: c# linq-to-sql

我的程序正在将记录写入db表。到目前为止,它已经为此表写了大约58条新记录。突然之间,我收到一条错误消息“行未找到或已更改”。这很奇怪,因为我正在插入新记录,而不是尝试找到或更新现有记录。这是我用来创建一个对象然后插入表中的一小段代码:

// create new comment object
var comment = new Comment
                  {
                      TableName = "Circuit",
                      TableKey = circuitId,
                      Text = remarks,
                      CreatedOn = DateTime.Now,
                      CreatedByName = "loadCC03Circuits",
                      CreatedByUupic = "000000000"
                  };

cimsContext.Comments.InsertOnSubmit(comment);
cimsContext.SubmitChanges();

此时我不太清楚该怎么做。每个字段都有一个值,没有空值。并且,正如我所说的,在这种情况发生之前,已经有58条记录被这个相同的代码写出来了,除了数据被关闭(根据调试器会话中的字段值,不是)我是不太清楚还有什么要检查。有什么建议吗?

编辑:我在下面添加了一个答案,这个问题消失了。但是,我不确定为什么这个解决方案有效。

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方案,但没有找到"答案"。在这种情况下,解决方案是创建一个包含DateTime.Now值的变量:

var dateNow = DateTime.Now;

我将受影响的代码行更改为:

CreatedOn = dateNow,

奇观奇观,我不再收到错误。我不确定为什么这会解决这个问题,我只是根据同事的建议尝试了这个问题。他认为我工作的沙箱数据库很迟钝,可能会影响DateTime.Now功能。无论如何,这使得这个问题消失了。不过,我希望我有一个明确的答案。当我不明白为什么解决方案有效时,我讨厌解决问题。