2

だから私は linqpad チャレンジを取っています: http://www.linqpad.net/Challenge.aspxそして、別のテーブルではなく、1 つのテーブルからすべての見込み客を作成するためのレポートを持っています。私の linq は次のとおりです。

//get customers from one table
var salesNotCancelled = Sales.Where(a=>a.Canceled == 2).Select(x => x.Customer_ID).ToArray();

//query against the other table removing customers based on id
var query=Customers.Where(
        !salesNotCancelled.Contains(a.Customer_ID)
    );
query.Dump();

SQL 出力は、期待どおりに「where not in (ids...)」を使用しています

しかし、エラーは RPC 呼び出しのハード リミットです。

着信表形式データ ストリーム (TDS) リモート プロシージャ コール (RPC) プロトコル ストリームは、

正しくない。この RPC 要求で指定されたパラメーターが多すぎます。最大は 2100 です。

これは SQL の方がレポートに適しているということですか、それとも (おそらく) 間違っているのでしょうか?

ポインタはありますか?

4

2 に答える 2

0

への呼び出しを削除します.ToArray()。これにより、クエリの半分がサーバー上で実行されなくなります。

于 2012-05-28T11:44:35.340 に答える