linq2sql DuplicateKeyException,同时进行更新

时间:2016-08-30 06:09:24

标签: c# linq linq-to-sql

我正在尝试使用linq2sql对我的数据库中的记录进行更新,但是,我得到以下异常抛出:

 'System.Data.Linq.DuplicateKeyException' in System.Data.Linq.dll ("Cannot add an entity with a key that is already in use.")   System.Data.Linq.DuplicateKeyException

虽然我理解异常告诉我的是什么,但在进行更新时这怎么可能?我没有插入任何数据,所以没有密钥应该更新?

 var Printer = db.Printers.FirstOrDefault(p => p.id == i.PrinterId);
 Printer.CenterId = GetCenterId(i.NewCenterCode);
 Printer.LastCenterCode = i.NewCenterCode;
 db.SubmitChanges();

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可能正在使用dbcontext'太多'并且dbcontext已经在管理您尝试更新的相同记录。

尝试使用新的dbcontext来执行更新。 Dbcontexts意味着经常使用和处理。

https://stackoverflow.com/a/3151724/711061