【发布时间】:2015-03-26 22:39:21
【问题描述】:
我在实体框架中正确更新连接表时遇到问题。由于主键约束,我收到无法更新的错误。解决这个问题的正确方法是什么?
> Violation of PRIMARY KEY constraint 'PK_WEB_AUDIO'. Cannot insert
> duplicate key in object 'dbo.WEB_AUDIO'. The duplicate key value is
> (5110).
这是 CRON 作业的一部分,因此 AddOrUpdate 是必要的。
using (var ctx = new WebEntities())
{
relatedFiles.ForEach(relatedFile =>
{
var assocProd = ctx.WEB_VAULT_LOOKUP.SingleOrDefault(c => c.MODEL_SERIES == product.PartId);
assocProd.WEB_AUDIO.Add(new WEB_AUDIO()
{
AudioID = relatedFile.ID,
DisplayName = relatedFile.Name,
URL = relatedFile.Path
});
});
ctx.SaveChanges();
}
【问题讨论】:
-
什么时候调用 ctx.SaveChanges()?
-
在 foreach 循环结束之后。 (更新的问题。)
-
你能发布你得到的关键约束异常消息吗?
-
请不要破坏您的帖子。你不能删除它,因为回答的用户会失去他们的声誉,浪费他们的时间。如果您真的想要删除您的帖子,您可以举起自定义标志要求删除,或使用页面底部的“联系我们”链接说明您的情况。
标签: c# sql .net entity-framework join