System.Data.Linq.ChangeConflictException?未找到或更改行?但是,我正在插入,而不是更新
System.Data.Linq.ChangeConflictException? Row not found or changed? But, I'm inserting, not updating
我的程序正在将记录写入数据库 table。到目前为止,它已经向这个 table 写入了大约 58 条新记录。突然间,我收到一条错误消息 "Row not found or changed." 这很奇怪,因为我正在插入一条新记录,而不是尝试查找或更新现有记录。这是我用来创建对象然后插入到 table:
的一小段代码
// 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 条记录,所以,除了数据被关闭(根据我的调试器会话中的字段值,它不是)我是不太确定还有什么要检查的。有什么建议吗?
编辑:我在下面添加了一个答案,使这个问题消失了。但是,我不确定为什么这个解决方案有效。
我找到了解决方案,但没有 "answer"。在这种情况下,解决方案是创建一个包含 DateTime.Now 值的变量:
var dateNow = DateTime.Now;
我将受影响的代码行更改为如下所示:
CreatedOn = dateNow,
奇迹中的奇迹,我不再收到错误。我不确定为什么这会解决问题,我只是根据同事的建议尝试了这个。他推测我正在使用的沙盒数据库运行缓慢,可能会影响 DateTime.Now 功能。无论如何,这使该问题消失了。不过,我希望我有一个明确的答案。当我不明白为什么解决方案有效时,我讨厌让问题消失。
我的程序正在将记录写入数据库 table。到目前为止,它已经向这个 table 写入了大约 58 条新记录。突然间,我收到一条错误消息 "Row not found or changed." 这很奇怪,因为我正在插入一条新记录,而不是尝试查找或更新现有记录。这是我用来创建对象然后插入到 table:
的一小段代码// 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 条记录,所以,除了数据被关闭(根据我的调试器会话中的字段值,它不是)我是不太确定还有什么要检查的。有什么建议吗?
编辑:我在下面添加了一个答案,使这个问题消失了。但是,我不确定为什么这个解决方案有效。
我找到了解决方案,但没有 "answer"。在这种情况下,解决方案是创建一个包含 DateTime.Now 值的变量:
var dateNow = DateTime.Now;
我将受影响的代码行更改为如下所示:
CreatedOn = dateNow,
奇迹中的奇迹,我不再收到错误。我不确定为什么这会解决问题,我只是根据同事的建议尝试了这个。他推测我正在使用的沙盒数据库运行缓慢,可能会影响 DateTime.Now 功能。无论如何,这使该问题消失了。不过,我希望我有一个明确的答案。当我不明白为什么解决方案有效时,我讨厌让问题消失。