0

我在一个类中创建了以下方法,该方法旨在获取 SharePont 列表中的所有项目并将它们加载到我的实体中:

public List<ItemEntity> FetchItems(SPList list)
{
    // build the CAML query of field names that we wish to retreive
    var query = new SPQuery
        {
            ViewFields = string.Concat("<FieldRef Name='Modified' />",
                                        "<FieldRef Name='Modified By' />",
                                        "<FieldRef Name='Created' />",
                                        "<FieldRef Name='Created By' />")
        };

        SPListItemCollection items = list.GetItems(query);

        return (from SPListItem item in items
                select Load("", // item id
                            "", // content type
                            "", // display name
                            "", // name
                            "", // title
                            "", // url
                            "", // author
                            "", // editor
                            Convert.ToDateTime(item["Modified"]), // date time modified
                            item["Modified By"].ToString(), // modified by
                            Convert.ToDateTime(item["Created"]), // date time created
                            item["Created By"].ToString() // created by
                    )).ToList();
}

出于某种我不明白的原因,它会引发以下错误:

值不在预期范围内。

我认为这可能与我的 CAML 查询返回的结果有关,但即便如此,我还是将其限制为元数据字段(我认为每个文件都应该存在),不幸的是我仍然收到错误消息。我哪里错了?

4

1 回答 1

2

我相信您缺少某些内置字段的正确内部名称。

尝试使用:

item["Author"].ToString() instead of item["Created By"].ToString() and
item["Editor"].ToString() instead of item["Modified By"].ToString()

有关 sharepoint 2010 内部字段名称的完整参考,我通常参考以下链接: http ://sharepointmalarkey.wordpress.com/2010/10/12/sharepoint-internal-field-names-sharepoint-2010/

于 2013-10-03T13:41:06.323 回答