在表中,Leads包含一個包含JSON字符串的列Data
。在LINQ的語句,我需要從JSON提取場:LINQ需要從列中解析JSON
var results = from l in leads
select new MyLeadObject
{
LeadID = l.LeadID,
...
RequestType = (string)l.Data["RequestTypeID"]
};
這裏是JSON的一個縮短的版本:
{
"RequestTypeID":1
}
RequestTypeID
是一個字符串。
我一直在閱讀其他線程,並試圖拼湊在一起。沒有多少運氣。
編輯:
與恩科西的幫助下,我能走到今天:
RequestType = (string)JSONNetSerialization.DeserializeJsonNet<LeadData>(l.Data).RequestTypeID
唯一的問題是,LeadData.RequestTypeID是一個枚舉,所以不會枚舉轉換一個字符串。我不知道如何獲得枚舉的價值,而不是整個枚舉本身。在LINQ之外,我可以這樣做:RequestTypeID.GetDisplayName();
但是.GetDisplayName()
不被LINQ識別。
您可以使用JSON.Net來解析數據字段以獲取屬性。但是查詢需要首先實現,因爲linq to sql會大吵大鬧 – Nkosi
我不確定我遵循 – user1418704
是'leads'直接調用表還是已經在內存中 – Nkosi