Удаление отношений LINQ-to-SQL и «многие ко многим»

У меня есть отношения «многие ко многим» между двумя столами, скажем, «Друзья» и «Еда». Если другу нравится еда, я добавляю строку в таблицу FriendsFoods, например:

ID Friend Food
1 'Tom' 'Pizza'

FriendsFoods имеет первичный ключ «ID» и два ненулевых внешних ключа «Friend» и «Food» для таблиц «Friends» и «Foods» соответственно.

Теперь предположим, что у меня естьFriend tom Объект .NET соответствует 'Tom', и Том больше не любит пиццу (что с ним не так?)

FriendsFoods ff = tom.FriendsFoods.Where(x => x.Food.Name == 'Pizza').Single();
tom.FriendsFoods.Remove(ff);
pizza.FriendsFoods.Remove(ff);

Если я попытаюсьSubmitChanges() на DataContext я получаю исключение, потому что он пытается вставить нуль вFriend а такжеFood столбцы вFriendsFoods Таблица.

Я уверен, что смогу собрать некоторую запутанную логику для отслеживания изменений вFriendsFoods таблица, перехватSubmitChanges() звонки и т. д., чтобы попытаться заставить это работать так, как я хочу, но есть ли хороший, чистый способ удалить связь «многие ко многим» с LINQ-To-SQL?

Ответы на вопрос(3)

Ваш ответ на вопрос