При попытке удалить запись из базы данных появляется ошибка.
Вот мой текущий код удаления:
Dim BAToRemove = From i In uDC.BookAuthors _
Where i.authorID = intAuthorID _
And i.bookID = intBookID _
And i.main = "N" _
Select i Take (1) Distinct
If BAToRemove.Any Then
Dim ba As BookAuthor = BAToRemove.First
uDC.BookAuthors.DeleteOnSubmit(ba)
Dim cs As ChangeSet = uDC.GetChangeSet
uDC.SubmitChanges(ConflictMode.ContinueOnConflict)
If cs.Deletes.Count = 1 Then
Return True
Else
Return False
End If
End If
Это код после возни, чтобы попытаться заставить его работать. Даже без различия .First и Take (1) запрос определенно возвращает только один результат. Я использовал BAToRemove.Count, а также вручную проверил таблицу, и есть только одна подходящая строка.
И BookID, и AuthorID являются первичными ключами.
Я также пытался просто использовать BAToRemove.First прямо в DeleteOnSubmit.
Я также пытался скопировать все элементы возвращенного объекта в новый объект, затем присоединить и удалить, но я получаю сообщение об ошибке, что элемент уже существует (что он делает).
Все остальные посты, которые я основал по этой проблеме, всегда, похоже, являются ошибкой использования SingleOrDefault, который я не использую, поэтому я озадачен этим.
Есть идеи?