2014-02-14 52 views
0

如果我有以下設置實體框架刪去鏈接表

public class Device 
{ 
    public virtual ICollection<Folder> PresentInFolders { get; set; } 
    public virtual RoutingRule RoutingRule { get; set; } 
} 

public class Folder 
{ 
    public virtual ICollection<Device> Devices { get; set; } 
} 

在下面的代碼足夠撇清和刪除鏈接的所有行?

foreach (var folder in device.PresentInFolders.ToList()) 
{ 
    folder.Devices.Remove(device); 
} 
device.PresentInFolders.Clear(); 

回答

1

正如我所看到的,您已經設置了設備和文件夾之間的多對多關係。不應該有必要從關係的兩端刪除,所以這應該做的工作:

folder.Devices.Clear(); 
+2

並確保'folder.Devices'加載,否則EF不會注意到更改。 –