0

私は現在、MVC 4 WebAPI w Entity Framework データベースの最初のモデリングのシナリオを使用しています。私のapicontroller内で、次のエラーが表示されます:

エラーが発生しました。タイプ 'WhereSelectEnumerableIterator 2[VB$AnonymousType_42[System.Nullable 1[System.Guid],System.Collections.Generic.IEnumerable1[CK5.Airline]],VB$AnonymousType_5 1[System.Nullable1[System.Guid]]]' のオブジェクトをタイプ 'System.Collections.Generic.IEnumerable 1[CK5.Airline]'. </ExceptionMessage> <ExceptionType>System.InvalidCastException</ExceptionType> <StackTrace> at lambda_method(Closure , Object , Object[] ) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass13.<GetExecutor>b__c(Object instance, Object[] methodParameters) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments) at System.Threading.Tasks.TaskHelpers.RunSynchronously[TResult](Func1 func, CancellationToken cancelToken) にキャストできません

    Public Class AirlineController
            Inherits ApiController

            ' GET api/Airline
            Function GetAirlines() As IEnumerable(Of Airline)
                Using db As New DefaultEntities
                    Return From p In db.Airlines.AsEnumerable Order By {p.Name} Group By ParentID = p.ParentID Into parentIDGroup = Group Select New With {.ParentID = ParentID}
                End Using
            End Function
End Class

私のエンティティ モデル オブジェクト内で、ParentID は (guid の) nullable 型であり、問​​題の原因であると考えています。Linq2Sql シーンリオを使用する前にこれが機能していましたが、更新すると問題が発生します。Web api 構造に問題があるとは思いませんが、w エンティティ フレームワークだけです。どこが間違っていますか?

4

1 に答える 1

1

それを私が直した。1)何らかの理由で、EFはステートメントUsing db as New DBContextを使用したくないため、使用する前に接続を閉じます。2)理由はわかりませんが、ラムダステートメントの使用も好きではありません。そのため、Order By または Group By ステートメントが気に入らなかったのです。私はそれを調べる必要があります。3) 問題は少し無関係でしたが、これはデータベースが最初の EF だったので、globabl.asax にもこのステートメントを入れました: Database.SetInitializer(New DropCreateDatabaseIfModelChanges(Of DefaultEntities)())。変更に基づいてモデルまたはデータベースを更新すると考えています。それは私に嘘をつきました。=/

于 2014-03-23T02:49:29.590 に答える