0

EFモデル(ASP.NET MVC WebApiを使用)をクエリしようとしていますが、最初のバージョン(SingleOrDefaultを使用)のみが機能し、2番目のバージョンは機能せず、頭を悩ませることができません。

働く:

Public Overloads Shared Function GetById(id As Integer) As MEDIA
    Dim db As New EFEntities()
    Dim r As New MEDIA()
    r = db.MEDIA.SingleOrDefault(Function(p) p.id = id)

    Return r
End Function

動作しない:

エラー:タイプ'System.Data.Objects.ObjectQuery`1[Data.MEDIA]'のオブジェクトをタイプ'Data.MEDIA'にキャストできません

Public Overloads Shared Function GetById(id As Integer) As MEDIA
    Dim db As New EFEntities()
    r = From media In db.MEDIA
            Where media.id= id _
            Select media

    Return r
End Function        

誰かが2番目のバージョンを実行する方法を教えてくれて、問題が何であるかを説明してくれたら本当にありがたいです!

4

1 に答える 1

0

最初の例では、次の行があります。

r = db.MEDIA.SingleOrDefault(Function(p) p.id = id)

単一のMEDIAオブジェクトを初期化します。

ただし、2番目の例では、次の行があります。

r = From media In db.MEDIA
        Where media.id= id _
        Select media

MEDIAオブジェクトのコレクションを初期化します-互換性のないタイプ。

2番目の例でreturn式を次のように変更した場合:

Return r.SingleOrDefault()

Dimそして、それが機能する初期化の前に固執しrます。

于 2012-08-09T20:18:49.680 に答える