1

或者 - 至少我认为正确的术语是有状态的。我有一个 wcf 服务,列出了很多数据给我。事实上,数据量如此之大,以至于我超过了 maxrecievedmessagesize - 并且程序崩溃了。

我开始意识到我需要拆分对数据库的调用。我需要获取第 1 - 200 行,而不是检索 5000 行,记住第 200 行的 id,从第 200 行的 id 中获取接下来的 200 行,依此类推。

有谁知道如何做到这一点?有状态(如“与无状态”相反)是正确的方法吗?我将如何进行......?有人可以给我举个例子吗?

4

1 回答 1

0

您的场景中不需要有状态服务。最好避免使用有状态服务,尤其是当您想在那里保存 5000 行时。

客户应指定它需要多少数据。所以它可能是方法 GetRows(index, amount),其中 index 是用于获取行的起始索引和从起始索引开始的行数。

客户端也应该询问服务的数据状态,服务只是发送数据状态。例如,当您有这 5000 行时,您可以在服务 GetRowsState(index, amount) 上使用方法,同样的故事只是说您的行的最后更新时间,当您收到的时间高于或其他客户端时,然后再次从服务器获取 GetRows 以更新客户端数据状态。

于 2012-11-20T10:12:42.593 回答