簡體   English   中英

使用Couchbase時發生類型轉換錯誤

[英]Type casting error while using couchbase

我的ouchbase數據存儲區中有一個名為“ TotalPosts”的視圖。 設計文檔名稱為“統計”。

這是我的代碼。 我正在這里建立連接。

protected void Page_Load(object sender, EventArgs e)
        {
            try
              {
                var client= new CouchbaseClient();
                Tasks objTasks = new Tasks();
        foreach (Newtonsoft.Json.Linq.JToken jt in objTasks.GetAllStatistics())
        {
            if (jt["key"].ToString() == "Total")
            {
                dt.Rows[0]["Value"] = jt["value"].ToString();
            }
            if (jt["key"].ToString() == "Open")
            {
                dt.Rows[1]["Value"] = jt["value"].ToString();
            }
            if (jt["key"].ToString() == "Wah")
            {
                dt.Rows[2]["Value"] = jt["value"].ToString();
            }

        }

這是我的GetAllStatistics函數定義代碼:

public IEnumerable<Newtonsoft.Json.Linq.JToken> GetAllStatistics()
        {

            var results = oCouchbase.GetView("Statistics", "TotalPosts");
            return results;// I am getting the following error in this line
        }

無法將類型“ Couchbase.IView”隱式轉換為“ System.Collections.Generic.IEnumerable”。 存在顯式轉換(您是否缺少演員表?)

這是我的地圖代碼:

function(doc) {
emit("Total", 1);
    emit("TotalParticipants", doc.participants.length);
    if(doc.status == "1"){
        emit("Open", 1);
    } else if(doc.status == "2") {
        emit("Wah", parseInt(doc.wah_points));
    }
}

這是我的減少代碼:

function (key, values, rereduce) {
    return sum(values);
}

我找不到合適的類型轉換。 請在這個問題上幫助我

我無法聲明對Couchbase的任何了解,但是錯誤消息表明您可以執行顯式強制轉換。 您是否嘗試過為回報做演員?

return (Newtonsoft.Json.Linq.JToken)results;

GetView的非通用版本返回IViewRow的可枚舉列表。 因此,我建議將您的GetAllStatistics方法更改為如下所示:

public IEnumerable<Newtonsoft.Json.Linq.JToken> GetAllStatistics()
{
    var results = oCouchbase.GetView("Statistics", "TotalPosts");
    foreach(var row in results)
    {
        yield return oCouchbase.Get<Newtonsoft.Json.Linq.JToken>(row.ItemId);
    }
}

然后,您的foreach循環應該照常工作。 但是,我有一個問題是您的文檔是什么樣的。 您是否正在將JToken實例序列化為Store操作中的值? 如果是這樣,則它們將在視圖中不可用,因為視圖中僅可使用有效的JSON字符串。 如果您對我剛才提到的任何問題有任何疑問,請隨時編輯您的問題以包括您的商店操作和地圖/縮小視圖代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM