有什么想法吗?
让我说一些代码示例来说明我的情况。
CallCenterLogObjCotext = (CallCenterLogObjCotext == null ? (new CallcenterLogContext) : (CallCenterLogObjCotext));
CallDetail newCallDetailsOpenTicket = new CallDetail();
newCallDetailsOpenTicket.CallPurpose = (from callpuposelist in CallCenterLogObjCotext.CallPurposes where callpuposelist.CallPurposeID == ((CallPurpose)(cbcallpurpose.SelectedItem)).CallPurposeID select callpuposelist).FirstOrDefault();
很多像这样的设置......
CallCenterLogObjCotext.CallDetails.InsertOnSubmit(newCallDetailsOpenTicket); CallCenterLogObjCotext.SubmitChanges();
正如我上面提到的,这是点击Windows窗体上的Open Ticket按钮。我在该表单上的可用文本框中更改了fname,lname和all的值,然后单击了相同的按钮。所以它会再次调用相同的方法。我得到以下指定的错误。 System.Data.Linq.DuplicateKeyException:无法添加具有已在使用的密钥的实体。
感谢。
答案 0 :(得分:0)
看看这个问题,它会处理您的例外并提出解决方案:
ON INSERT: Cannot add an entity with a key that is already in use