2011-05-12 73 views
2

代码优先模式:如何从集合空载删除实体的所有收集的数据

public class Princess 
{ 
    public int Id { get; set; } 
    public virtual ICollection<Unicorn> Unicorns { get; set; } 
} 

public class Unicorn 
{ 
    public int Id { get; set; } 
    public virtual ICollection<Princess> Princesses { get; set; } 
} 

,才有可能从收集和无负载(渴望或懒惰)所有收集的数据中删除实体?

var princess = context.Princesses.Where(x => x.Id == 1).Single(); 
var unicorn = context.Unicorns.Where(x => x.Id == 1).Single(); 
princes.Unicorns.remove(unicorn); //load all assigned unicorns 
context.SaveChanges(); 

我猜ExecuteSqlCommand应该工作。其他方案?

回答

1

使用存根。关闭我的头顶(可能需要调整):

var princess = new Princess { Id = 1 }; 
princess.Unicorns.Add(new Unicorn { Id = 1 }); 
context.Princesses.Attach(princess); // start tracking changes 
princes.Unicorns.Remove(unicorn); 
context.SaveChanges(); 
+0

它很完美! – Snahider 2011-05-13 08:30:04

相关问题