0
Public ReadOnly Property logs() As CloudTableQuery(Of adlog)
Get
Return CreateQuery(Of adlog)("adlog").AsTableServiceQuery()
End Get
End Property

次のコードがあります

Dim oContext = New kdlib.kdlogs.adlog_context()
Dim q = From adlogs In oContext.logs Where adlogs.PartitionKey = "xxxxxx"

1000行のみを戻します

.Execute()どこかで読んだときに追加すると:

Dim q = From adlogs In oContext.logs.Execute() Where adlogs.PartitionKey = "xxxxxx"

リクエストは尽きることがありません

私は本当にそれを取得しません。

以下の成功した回答に基づいて編集

ここで動作します

Dim azt_context As New tableContextGet
Dim azt_query As CloudTableQuery(Of adlog)
azt_query = azt_context.CreateQuery(Of adlog)("adlog").Where(Function(e) (e.PartitionKey = "xxx")).AsTableServiceQuery()
Dim azt_result = azt_query.Execute()

次に azt_result.ToList

4

1 に答える 1

0

最初のクエリはクエリ パラメーターをストレージ サーバーに送信し、ストレージ サーバーはフィルター処理された結果を送信します。

2 番目のクエリは、テーブルからすべてのデータを取得し、メモリ内でフィルター処理しようとしています。これは、oContext.logs.Execute()パラメータなしでクエリをすぐに実行するためです。余談ですが、非常に長い時間がかかる場合がありますが、おそらく完了します。

通常、最初にクエリを設定し、次に .AsTableServiceQuery() を呼び出して、結果を取得します。私はVB.NETについてよく知りませんが、これで一般的なアイデアが得られるはずです:

Public ReadOnly Property logs() As CloudTableQuery(Of adlog)
Get
Return CreateQuery(Of adlog)("adlog")
End Get
End Property

...

Dim oContext = New kdlib.kdlogs.adlog_context() 
Dim q = From adlogs In oContext.logs Where adlogs.PartitionKey = "xxxxxx"
Dim qQuery = q.AsTableServiceContext() //Do this after setting up parameters
Dim qResult = q.ToList()  //Actually executes the query.
于 2012-09-20T22:40:23.690 に答える