ASP.NET LINQ для удаления строк - PullRequest
0 голосов
/ 30 апреля 2010
Dim db As New SQLDataContext
Try
    Dim deleteBoatPics = (From boat In db.Photos
                          Where boat.boatid = id)
    db.Photos.DeleteOnSubmit(deleteBoatPics)
    db.SubmitChanges()
Catch ex As Exception
End Try

Я получаю сообщение об ошибке: Невозможно привести объект типа «System.Data.Linq.DataQuery`1 [WhiteWaterPhotos.Photo]» к типу «WhiteWaterPhotos.Photo».

У меня есть два отдельных db.SubmitChanges (), потому что, когда кнопка нажата, она удаляет записи из 1 таблицы, а затем из следующей.

Я заблудился, кто-нибудь может мне помочь?

Ответы [ 2 ]

1 голос
/ 30 апреля 2010

попробуй

Dim db As New SQLDataContext
Try
    Dim deleteBoatPics = (From boat In db.Photos
                          Where boat.boatid = id
                          select boat)
    db.Photos.RemoveAll(deleteBoatPics)
    db.SubmitChanges()
Catch ex As Exception
End Try

Я не знаю vb.net так много, но в c # это будет иметь "выбрать лодку" в конце этого запроса и использовать RemoveAll (...)

1 голос
/ 30 апреля 2010

попробуйте это:

Dim db As New SQLDataContext
Try
    Dim deleteBoatPics = (From boat In db.Photos
                          Where boat.boatid = id).take(1).singleordefault
    if not deleteBoatPics is Nothing Then
       db.Photos.DeleteOnSubmit(deleteBoatPics)
       db.SubmitChanges()
    End If
Catch ex As Exception
End Try

Или для списка элементов:

Dim db As New SQLDataContext
Try
    Dim deleteBoatPics = (From boat In db.Photos
                          Where boat.boatid = id).ToList()
    if not deleteBoatPics is Nothing Then
       db.Photos.DeleteAllOnSubmit(deleteBoatPics)
       db.SubmitChanges()
    End If
Catch ex As Exception
End Try
...