Löschen von LINQ-To-SQL- und Many-To-Many-Beziehungen
Ich habe eine Viele-zu-Viele-Beziehung zwischen zwei Tabellen, sagen wir Freunde und Essen. Wenn ein Freund ein Essen mag, stecke ich eine Zeile in die FriendsFoods-Tabelle:
ID Friend Food
1 'Tom' 'Pizza'
FriendsFoods hat eine Primärschlüssel-ID und zwei Fremdschlüssel (Friend) und Food (Food) für die Tabellen Friends (Freunde) und Foods (Lebensmittel).
Nun nehme an, ich habe einFriend tom
.NET-Objekt, das 'Tom' entspricht, und Tom mag keine Pizza mehr (was ist los mit ihm?)
FriendsFoods ff = tom.FriendsFoods.Where(x => x.Food.Name == 'Pizza').Single();
tom.FriendsFoods.Remove(ff);
pizza.FriendsFoods.Remove(ff);
Wenn ich versuche,SubmitChanges()
auf dem DataContext bekomme ich eine Ausnahme, weil es versucht, eine Null in das @ einzufügFriend
undFood
Spalten imFriendsFoods
Tabelle
Ich bin sicher, dass ich eine Art verschlungene Logik zusammenstellen kann, um Änderungen am @ zu verfolgeFriendsFoods
table, interceptSubmitChanges()
calls, etc um zu versuchen, dies so zu machen, wie ich es möchte, aber gibt es eine nette, saubere Möglichkeit, eine Many-to-Many-Beziehung zu LINQ-To-SQL zu entfernen?