2014-04-15 28 views
0

我已經寫了一個視圖來返回來自couchbase的所有文檔,但每次都返回null,但是當我這樣做時var viewCount = view.Count();返回正確的數字。這是爲什麼發生?查看查詢返回計數但不是行

這裏是我的代碼:

var view = clientConnection.GetView("GetDocuments", "GetAllDocuments"); 

if(view.CheckExists()) 
{ 
    //Returns corrent amount of documents 
    var viewCount = view.Count(); 
    Console.WriteLine(viewCount); 
} 

//Returns 0 rows 
return view; 

下面是從web GUI我的觀點只是爲了確保我傳遞正確的名稱爲GetView方法:

enter image description here

編輯

在閱讀評論中提到的文章後,我發現這個:

GetView的返回類型是可枚舉的IView,其中每個枚舉值都是IViewRow。在枚舉視圖之前,不會運行實際的視圖查詢。

這是所有好,很好,但它仍然拋出空引用異常

回答

2

根據您使用的是哪個版本的.NET客戶端,這可能是一個錯誤。這是個壞消息。好消息它是固定的,但沒有公佈(至今):

這將公佈五月的第一週(1.3.5版本)。該錯誤在1.3.3版本中引入。

+0

有趣的是,我設置布爾urlEncode爲true,它的工作? 'var view = clientConnection.GetView(designName,viewName,true);'我不知道爲什麼現在它的工作? –

+0

這是因爲它使用了一個不包含錯誤的重載:( – jeffrymorris

+0

啊我看到了.bool urlEncoded參數是幹什麼的? –

0

我假設你正在使用C#在這裏,如果不是那麼它的早,我困了!

你需要循環的結果,因此打印出所有的ID或將它們添加到一個數組等等,你必須這樣做:

foreach (var doc in view) 
{ 
    Console.WriteLine(doc.id); 
    //Add id to array or other processing 
} 

您可以看到C#中查看文檔這裏http://docs.couchbase.com/couchbase-sdk-net-1.3/#working-with-views

+0

但'doc.itemId'爲空?我是否使用了正確的名稱作爲我的觀點? –

+0

你可以包含你的映射代碼和你有的例外嗎? – scalabilitysolved