0

Dynamics CRM Online にリンクする Web サイトを使用しています。私はこれらの両方に不慣れですが、学ぶための最良の方法は自分自身にプレッシャーをかけることだと思います.

とにかく、LinqPad を使用して作成した次の LINQ クエリがあります。

from m in py3_membershipSet
join c in ContactSet on m.py3_Member.Id equals c.ContactId 
where m.statuscode.Value == 1
orderby m.py3_name
select m

ただし、これによりメモリ不足の例外が発生します。Take(100) を使用しても問題なく動作しますが、合計で約 1200 件の結果が取得されると予想されます。メモリの問題が LinqPad 関連の問題であるかどうかはわかりませんが、いずれにしても、上記のクエリはこれらの結果を取得する最も効率的な方法ではないと想定しています。

LinqPad を介して表示されるのと同じくらい多くのメモリを消費する場合は、これをより効率的にするためにいくつかの助けを借りて実際に行うことができます。

4

2 に答える 2

1

例外OutOfMemory, _

...プログラムの実行を続行するのに十分なメモリがない場合にスローされます。

したがって、あなたが書いたLinqには特に問題はないと思います-クライアントが処理できるよりも多くのデータを返すことを除けば。これは、CRM や Linq よりもクライアントに関係する問題だと思います。

これは、LinqPad (自分では使用していません) に関係している可能性があります。(LinqPad の問題を除外するために) コンソール アプリからそのスクリプトを実行してみましたか?

1200 とは思えませんし、非常に多くのデータを取得します。私は 1000 ~ のレコードを問題なく取得することがよくありますが、喜んではるかに多くのレコード (5000 ~) を取得しました。

ページングにより問題が回避される場合があります。LINQ を使用した大きな結果セットのページ

関連資料:例外のトラブルシューティング: System.OutOfMemoryException

于 2013-04-28T17:36:20.807 に答える