日期:2014-05-20  浏览次数:21003 次

请教个 Entity Framework 多对多 删除的问题 如何先删除关系




A 表中数据 
AId  Name
a1   a11111
a2   a22222
a3   a33333

B 表中数据
BId  Name
b1   b1111
b2   b2222

AINB 表中数据
AID  BID
a1   b1
a1   b2
a2   b1
a3   b2




using (Entities entity = new Entities())
{
           
  A a1 = entity.SingleOrDefault(p => p.AId == "a1");   //找到a1 对象
  
  entity.DeleteObject(a1);  // 直接这样删除就会报错 那么 AINB 表中数据该怎么先删除??? 
  entity.SaveChanges();

}


------解决方案--------------------
先删除子表,再删除主表
http://www.cnblogs.com/sunnycoder/archive/2010/08/22/1805875.html
------解决方案--------------------
using(Entities entity =new Entities())
{
  A a=entity.A.SingleOrDefault(p=>p.AID="a1");
while(a.AInB.Count>0)
{
entity.AInB.Remove(a.AInB.First());
}
entity.A.Remove(a);
entity.SaveChanges();
}
试试看吧,应该是可以的,我做过一次!