我正在尝试使用客户端对象模型从列表中查询数据。一切都在起作用,除了神秘的一个特定的领域不是。它们都以相同的方式被拉(大多数情况下),我可以去查看列表,看清楚该字段中是否有数据,但它只是没有被返回。这里有什么我想念的吗?是否有某种不同类型的字段设置可能导致这种情况(这只是一个文本字段btw)?
HostWeb = Context.Web;
Context.Load(HostWeb, w => w.Lists);
//Load The Drop off box documents list
DropOffBox = HostWeb.Lists.GetByTitle("Drop-off Box");
Context.Load(DropOffBox);
CamlQuery DropOffQuery = new CamlQuery();
DropOffQuery.ViewXml = "<View><Query><OrderBy><FieldRef Name='Number' /></OrderBy></Query></View>";
DropOffItems = DropOffBox.GetItems(DropOffQuery);
Context.Load(DropOffItems, items => items.Include(i => i.DisplayName, i => i["ows_Modified"], i => i["Recipient"], i => i["Url"],
i => i["Location"], i => i["Number"], i => i.Id));
Context.ExecuteQuery();
foreach (ListItem Item in DropOffItems)
{
FilerDocument Doc = new FilerDocument(Item.DisplayName, DateTime.Parse(Item["ows_Modified"].ToString()), (Item["Recipient"] ?? "").ToString(),
Item["Url"].ToString(),Item.Id.ToString(), _serverName);
Doc.FiledUrl = (Item["Location"] ?? "").ToString();
Doc.Number = (Item["Number"] ?? "").ToString();
Doc.PropertyChanged += new PropertyChangedEventHandler(Document_PropertyChanged);
DropOffDocs.Add(Doc);
}
失败的部分是“数字”字段。所有其他字段都可以正常工作,包括以相同的方式访问的位置,并且来自相同的内容类型。
答案 0 :(得分:0)
也许是一个愚蠢的问题,但你没有在OP中提及:你是否仔细检查了相关字段的内部列名是否真的命名为“Number”?客户端和服务器对象模型按其内部名称对列表字段进行地址,而不是(必然)按显示的字段名称。
更新:我建议您获取U2U's CAML Query Builder的副本。获取2007版本并通过SharePoint Web服务连接到您的2010实例。它将允许您为特定列表生成CAML查询,方便的部分是您选择您感兴趣的字段,并使用内部名称自动填充查询。
答案 1 :(得分:0)
您是否尝试在不使用DropOffItems
的情况下加载Include()
?