在表中,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