【发布时间】:2014-07-21 11:50:31
【问题描述】:
我是 EF 新手,并试图从父 Person 表和 2 个子表中删除一个条目;名称和地址...(级联)。当我附加到上下文时,我得到了;一个实体对象不能被多个 IEntityChangeTracker 实例引用。当我删除 Attach 方法时,我得到了;无法删除该对象,因为它在 ObjectStateManager 错误中找不到。感谢您的任何想法,因为我出去了。
using (var context = new PersonEntities())
{
ObjectContext oc = ((IObjectContextAdapter)context).ObjectContext;
Email[] DeleteName = SelectedEntries[CurName].Names.ToArray();
Phone[] DeletePhone = SelectedEntries[CurAddress].Addresses.ToArray();
foreach (name name in DeleteName)
{
foreach(Address address in DeleteAddress)
{
foreach (Person person in SelectedEntries)
{
context.Names.Attach(name);
oc.DeleteObject(name);
context.Addresses.Attach(address);
oc.DeleteObject(address);
context.Persons.Attach(person);
oc.DeleteObject(person);
oc.ObjectStateManager.ChangeObjectState(name,
System.Data.EntityState.Deleted);
oc.ObjectStateManager.ChangeObjectState(address,
System.Data.EntityState.Deleted);
oc.ObjectStateManager.ChangeObjectState(person,
System.Data.EntityState.Deleted);
}
}
}
【问题讨论】:
标签: c# .net sql-server database entity-framework