LINQPad を使用して既存の OData フィードをクエリすることで、OData について理解を深めています。Netflix フィードを使用して、最も多くの賞を受賞した俳優のリストを取得しようとしていますが、奇妙な例外が発生します。私の最初の試みは:
People.OrderByDescending(p => p.Awards.Count).Take(10)
しかし、それは私に5DataServiceQueryException
次の内部例外を与えました:
タイプ 'System.Collections.Generic.ICollection`1[[Netflix.Catalog.v2.Entities.TitleAward, Netflix.Catalog.v2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] にプロパティ 'Count' が存在しません]' 位置 7。
プロパティ.Count()
の代わりに拡張メソッドを使用して、少し変更を試みました。.Count
People.OrderByDescending(p => p.Awards.Count()).Take(10)
しかし、それは私に InvalidCastException を与えるだけです:
タイプ 'System.Linq.Expressions.PropertyExpression' のオブジェクトをタイプ 'System.Data.Services.Client.ResourceExpression' にキャストできません。
System.Data.Services.Client.ResourceBinder.AnalyzeCountMethod (MethodCallExpression mce)
で System.Data.Services.Client.ResourceBinder.VisitMethodCall (MethodCallExpression mce)
で System.Data.Services.Client.ALinqExpressionVisitor.Visit (Expression exp)
で System .Data.Services.Client.DataServiceALinqExpressionVisitor.Visit(Expression exp)
で System.Data.Services.Client.ALinqExpressionVisitor.VisitLambda(LambdaExpression lambda)
で System.Data.Services.Client.ALinqExpressionVisitor.Visit(Expression exp)
で System.Data .Services.Client.DataServiceALinqExpressionVisitor.Visit(式の式)
System.Data.Services.Client.ALinqExpressionVisitor.VisitUnary(UnaryExpression u) で
System.Data.Services.Client.ALinqExpressionVisitor.Visit(Expression exp)
で System.Data.Services.Client.DataServiceALinqExpressionVisitor.Visit(Expression exp)
で System.Data.Services.Client.ALinqExpressionVisitor.VisitExpressionList(ReadOnlyCollection 1 オリジナル) でSystem.Data.Services.Client.ALinqExpressionVisitor.VisitMethodCall(MethodCallExpression m) で System.Data.Services.Client.ResourceBinder.VisitMethodCall(MethodCallExpression mce) で System.Data.Services.Client.ALinqExpressionVisitor.Visit(Expression exp) で System. System.Data.Services.Client.ResourceBinder.Bind(式 e) のData.Services.Client.DataServiceALinqExpressionVisitor.Visit(式 exp )1 original)
at System.Data.Services.Client.ALinqExpressionVisitor.VisitMethodCall(MethodCallExpression m)
at System.Data.Services.Client.ResourceBinder.VisitMethodCall(MethodCallExpression mce)
at System.Data.Services.Client.ALinqExpressionVisitor.Visit(Expression exp)
at System.Data.Services.Client.DataServiceALinqExpressionVisitor.Visit(Expression exp)
at System.Data.Services.Client.ALinqExpressionVisitor.VisitExpressionList(ReadOnlyCollection
System.Data.Services.Client.DataServiceQueryProvider.Translate(Expression e)
で System.Data.Services.Client.DataServiceQuery 1.GetEnumerator() で System.Data.Services.Client.DataServiceQuery`1.System.Collections.IEnumerable. GetEnumerator()1.Execute()
at System.Data.Services.Client.DataServiceQuery
この質問の提案に従おうとしましたが、上記の2つのエラーのうちの1つしか得られませんでした。
この簡単な操作を実行する方法はありますか?