我首先使用实体框架代码
[Serializable]
public class Emp
{
public int EmpId { get; set; }
public byte TitleId { get; set; }
[MaxLength(50)]
public string FirstName { get; set; }
[MaxLength(50)]
public string Surname { get; set; }
public byte Type { get; set; }
public List<PracticeEmp> PracticeEmps { get; set; }
}
[Serializable]
public class PracticeEmp
{
public int PracticeStaffId { get; set; }
public int PracticeId { get; set; }
public int EmpId { get; set; }
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
public Emp Emp { get; set; }
}
当我尝试将数据插入到PracticeEmps表中时,已经存在的人员使用以下代码
Db.Current.Emps.Attach(practiceEmp.Emp);
Db.Current.PracticeEmps.Add(practiceEmp);
此代码段在attach方法上返回错误“ObjectStateManager中已存在具有相同键的对象.ObjectStateManager无法使用相同的键跟踪多个对象。”
任何想法......
答案 0 :(得分:2)
practiceEmp实例将自动附加到您的上下文。请注意,两个实体都处于Unchanged状态,这是附加实体的默认状态。