我正在尝试针对两个对象(SPListItemCollection
和List<SPListItem>
)编写LINQ查询。
当我的查询与下面的查询类似时,它可以正常工作:
var licFirst = from n in navList.Items.Cast<SPListItem>()
from z in licZeroth
where ((SPFieldLookupValueCollection)n["Parent"]).Select(t=>t.LookupId).Contains(z.ID)
select n;
当我向select:
添加项目时var licFirst = from n in navList.Items.Cast<SPListItem>()
from z in licZeroth
where ((SPFieldLookupValueCollection)n["Parent"]).Select(t=>t.LookupId).Contains(z.ID)
select n, ParentId = z.ID;
它开始出错:
名称'z'不存在于 当前背景
如何选择z.ID
?
答案 0 :(得分:6)
在第二个版本中,您需要稍微更改语法以获得具有2个属性的匿名类型n
和ParentID
。
select new { n, ParentID = z.ID };
如果这不是您想要的,请在问题中澄清。
答案 1 :(得分:0)
你的最终查询应该是这个
var licFirst = from n in navList.Items.Cast<SPListItem>()
from z in licZeroth
where ((SPFieldLookupValueCollection)n["Parent"]).Select(t=>t.LookupId).Contains(z.ID)
select new { n, ParentId = z.ID };