0
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' にキャストできません。

ボタンが押されると、1つのテーブルからレコードを削除し、次に次のレコードを削除するため、2つの別々の db.SubmitChanges() があります。

道に迷ったのですが、誰か助けてくれませんか?

4

2 に答える 2

1

これを試して:

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
于 2010-04-30T01:24:02.767 に答える
1

試す

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(...)を使用します

于 2010-04-30T01:40:41.340 に答える