0
我有follwing代码:EF:重复键上插入
public bool AddLeaveFormApprovers(List<LeaveFormApprovers> listToAdd)
{
bool returnValue=false;
try
{
using (LeaveRegulationEntities db = new LeaveRegulationEntities(ConnectionStringHelper.GetConnectionString(DaConstants.LeaveRegulationEntities)))
{
foreach(LeaveFormApprovers approvers in listToAdd)
{
approvers.AssignedLeave = db.AssignedLeave
.FirstOrDefault(a => a.AssignedLeaveID == approvers.AssignedLeave.AssignedLeaveID);
approvers.LeaveFormApproverSys = db.LeaveFormApproverSys
.FirstOrDefault(a => a.LeaveFormApproverID == approvers.LeaveFormApproverSys.LeaveFormApproverID);
db.LeaveFormApprovers.AddObject(approvers);
}
db.SaveChanges();
}
returnValue = true;
}
catch (Exception ex)
{
_Exceptions.ManageExceptions(ex);
}
return returnValue;
}
的List<LeaveFormApprovers>
这份名单是从另一个上下文加载此我得到在当前背景下的对象:
approvers.AssignedLeave = db.AssignedLeave
.FirstOrDefault(a => a.AssignedLeaveID == approvers.AssignedLeave.AssignedLeaveID);
approvers.LeaveFormApproverSys = db.LeaveFormApproverSys
.FirstOrDefault(a => a.LeaveFormApproverID == approvers.LeaveFormApproverSys.LeaveFormApproverID);
我收到以下错误:
Violation of PRIMARY KEY constraint 'PK_LeaveFor_B29C651847BE14B9'. Cannot insert duplicate key in object 'dbo.LeaveFormApproverSys'.
也许你想要[Attach](http://stackoverflow.com/questions/3920111/entity-framework-4-addobject-vs-attach)批准者对此上下文?然后设置属性? –
哪些批准者? – Mazen313
'foreach(LeaveFormApprovers批准者在listToAdd中)' - >这个批准者。 –