質問

私はSQLにLINQを使用することによって自動生成されたデータコンテキストオブジェクトにアクセスしています。 SQLデータベースは、SQL Server 2000のボックスです。私が働いているクラスは、SQLビューです。私はこれに類似している文を持っています:

query = _context.OrderDetails
    .Where(w => w.Product == "TEST")
    .OrderBy(o => o.DateCompleted)
    .ThenBy(t => t.LineItemId)
    .Skip(startRowIndex) 
    .Take(maximumRows);
スキップの値が0以外のものであるとき、

しかし、私はこのエラーを取得します:

このプロバイダーは(スキップをサポートしている)のみを超える、クエリ(非結合)クエリは、単一のテーブルで、すべてのID列が含まれているエンティティ又は突起を返すクエリを、注文、または交差する場合を除き、別個のものですまたは連合(ではない、連結方式)操作。

私はTEH DateCompletedとのLineItemId間の行が一意になることだと思うだろうが、その後、再びこれがポップアップ表示されます。これはビューであることと関係があるのでしょうか?もしそうなら、どのように私はこの問題を回避することができますか?

役に立ちましたか?

解決

私は何それは言うことは、あなたがたOrderDetailsテーブルのID列を持っていないならば、あなたはそこか言及した他の事業者の一つで.Distinctを()を追加する必要があるということであると考えています。

他のヒント

SQL Server 2000は、LINQのスキップを行うと機能を取るために、周りを取得する必要があることを、いくつか欠けている「配管」を持っています。これは、実質的には、SQL Server 2000でこれらの機能を使用することが可能な条件を制限します。

あなたは_context.OrderDetailsでID列を含むされ、エラーメッセージに記載されているように、あなたが他のすべての条件を満たしていることを確認します。

もちろん、あなたは常にSQL Server 2005以降にアップグレードすることができます。 :)

ここで

詳細情報: http://msdn.microsoft.com/en -us /ライブラリ/ bb386988.aspxする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top