2
我有一個簡單的DomainService:LINQ在WCF服務(的DomainService)
[EnableClientAccess]
public class DomainService1 : IDomainService1
{
[Query(IsComposable = true)]
public IEnumerable<int> GetCollection(int from, int count)
{
const int max = 100000;
int[] _collection;
_collection = new int[max];
for (int i = 0; i < max; i++)
{
_collection[i] = i;
}
return _collection.Skip(from).Take(count);
}
}
在客戶端我已經生成的代理:客戶
我需要在客戶端叢毛LINQ查詢,並在服務器端執行它並通過服務返回查詢結果。
當我做:
var res1 = client.GetCollection(100, 20).Skip(5).Take(5);
比client.GetCollection(100,20)在服務器側執行且
跳過(5)和帶(5) 在客戶端。
當我這樣做:
var res2 = client.GetCollection(100, 90000).Skip(10).Take(10);
它拋出異常:
基礎連接已關閉:連接被意外關閉。
我認爲這是由於,client.GetCollection(100,90000)返回大的結果集。
是一種獲取有關服務器故障原因的更好信息的方法? 它可能執行服務器上的客戶端查詢?我認爲是這樣,因爲這允許LinqToEntitiesDomainService。但是我不能使用EF,因爲我只能訪問內存中的對象列表。
謝謝。
JPO
我沒有看到你在哪裏撰寫查詢在客戶端。 – leppie 2011-01-22 21:23:34