0

Entity Framework、ASP.NET Web APIを使用していますが、データをサーバーに送信または受信するWinFormクライアントがあります。

1つのレコードを取得する方法と、一度にレコードのコレクションを取得する方法は知っていますが、問題を引き起こす可能性のあるレコードが大量にある可能性があります。では、クライアント側で新しい情報のコレクションを1つずつ取得するにはどうすればよいですか?

最初に新しいIDのリストを取得してから、1つずつ取得できると思います。より良いアプローチはありますか?

これの実装に関する情報は役に立ちます。

編集:明確にするために、私はデータベースからサーバーではなく、クライアントマシンのサーバーから情報のコレクションを取得することを意味します:)

4

2 に答える 2

2

ページングが答えです。以下は、Skip と Take を使用した Entity Framework と MVC によるページングへの優れたリンクです。基本的に、開始インデックス (または「スキップ」) を指定してから、取得する (または「取得」) レコードの数を指定します。このような:

context.YOURDBSET.Skip(0).Take(10);  //Gets the first 10.
context.YOURDBSET.Skip(10).Take(10);  //Gets the next 10.
context.YOURDBSET.Skip(20).Take(10);  //Gets the next 10.

等等等

そのリンクは次のとおりです 。 http://msdn.microsoft.com/en-us/magazine/gg650669.aspx

于 2012-12-10T20:13:08.837 に答える
0

この問題に対する非常に一般的なアプローチは、なんらかの形式のページングを作成することです。たとえば、初めてサーバーから最初の 50 レコードを取得します。次に、いくつかの条件に基づいて (ユーザーがトリガーするか、時間に基づいて自動化するか、アプリケーションによって異なります)、次のデータセットを取得し、51 から 100 を記録します。

さまざまなページのデータを取得する方法を工夫することができます。たとえば、データをそのように表示する必要がある場合は、ユーザーがマウス ホイールをスクロールすることに基づいてデータの取得をトリガーできます。最終的にはシナリオによって異なりますが、ページングが答えだと思います。

ページ サイズは 5 レコードでも 500 レコードでもかまいませんが、考え方は同じです。

于 2012-12-10T19:59:19.543 に答える