Sharepoint 2010 对于FieldValue,客户端对象模型查询返回null

Sharepoint 2010 对于FieldValue,客户端对象模型查询返回null,sharepoint-2010,Sharepoint 2010,我正在尝试使用客户机对象模型从列表中查询数据。一切都在运转,除了一个神秘的领域没有。它们都以相同的方式(大部分情况下)提取,我可以去查看列表,并清楚地看到字段中有数据,但它只是没有被返回。这里有我遗漏的东西吗?是否有某种不同类型的字段设置可能导致这种情况(顺便说一句,这只是一个文本字段) HostWeb=Context.Web; Load(HostWeb,w=>w.Lists); //加载下拉框文档列表 DropOffBox=HostWeb.Lists.GetByTitle(“下拉框”); 加载

我正在尝试使用客户机对象模型从列表中查询数据。一切都在运转,除了一个神秘的领域没有。它们都以相同的方式(大部分情况下)提取,我可以去查看列表,并清楚地看到字段中有数据,但它只是没有被返回。这里有我遗漏的东西吗?是否有某种不同类型的字段设置可能导致这种情况(顺便说一句,这只是一个文本字段)

HostWeb=Context.Web;
Load(HostWeb,w=>w.Lists);
//加载下拉框文档列表
DropOffBox=HostWeb.Lists.GetByTitle(“下拉框”);
加载(下拉框);
CamlQuery DropOffQuery=新建CamlQuery();
DropOffQuery.ViewXml=“”;
DropOffItems=DropOffBox.GetItems(DropOffQuery);
Load(DropOffItems,items=>items.Include(i=>i.DisplayName,i=>i[“ows_Modified”]、i=>i[“Recipient”]、i=>i[“Url”],
i=>i[“位置”]、i=>i[“数字”]、i=>i.Id));
Context.ExecuteQuery();
foreach(DropOffItems中的ListItem)
{
FilerDocument Doc=新的FilerDocument(Item.DisplayName,DateTime.Parse(Item[“ows_Modified”].ToString()),(Item[“Recipient”]??“”).ToString(),
Item[“Url”].ToString(),Item.Id.ToString(),_serverName);
Doc.FiledUrl=(项[“位置”]??“”).ToString();
文档编号=(项目[“编号”]??“”).ToString();
Doc.PropertyChanged+=新的propertychangedventhadler(Document\u PropertyChanged);
DropOffDocs.Add(Doc);
}

出现故障的部分是“编号”字段。所有其他字段都可以正常工作,包括以相同的方式访问的位置和来自相同的contenttype。

可能是一个愚蠢的问题,但您没有在OP中提及:您是否仔细检查了相关字段的内部列名是否真的命名为“Number”?客户机和服务器对象按其内部名称对地址列表字段进行建模,而不是(必须)按显示的字段名称进行建模



更新:我建议你买一份。获取2007版本并通过SharePoint Web Services连接到您的2010实例。它将允许您为特定列表生成CAML查询,方便的部分是您选择感兴趣的字段,并使用内部名称自动填充查询。

您是否尝试过在不使用
Include()的情况下加载
DropOffItems

很遗憾,是的,我已经验证了我使用的是正确的内部名称(我甚至将其更改为我知道不存在的名称,以验证它在尝试访问不存在的字段时抛出错误)。实际的字段名不是数字,这是一个相当长的名称,我为这篇文章更改了这个名称,以简化发生的事情。我没有,我不确定更改CAML查询将如何影响任何事情?它不确定我最初让查询为空的输出字段,只使用一个新实例,而没有任何具有相同结果的查询文本。还请注意,位置是有效的。谢谢你的帮助!我想在这一点上,我将把它转移到一个WCF服务,看看我是否可以以不同的方式处理这个问题。好的,我用两种方法使用这个工具:1)为CAML查询生成初始第一个过程,2)调试一个似乎不起作用的现有查询。由于它通过直接与SP列表对话来构建查询,因此有时可以清除问题。这就是全部。。。不管怎样,祝你好运!SP有时会令人痛苦。
   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);
    }