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?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage