Запрос клиентской объектной модели, возвращающий ноль для FieldValue - PullRequest
0 голосов
/ 26 октября 2010

Я пытаюсь запросить данные из списка, используя объектную модель клиента.Все работает, за исключением загадочно одного конкретного поля нет.Они все тянутся одинаково (в основном), и я могу пойти посмотреть на список и увидеть, что в поле есть данные, но они просто не возвращаются.Есть что-то, чего я здесь не хватает?Есть ли какой-то другой тип настройки поля, который мог бы вызвать это (это просто текстовое поле между прочим)?

   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);
    }

Часть, которая не работает, является полем «Число».Все остальные поля работают нормально, включая местоположение, доступ к которому осуществляется точно таким же образом и происходит из того же типа содержимого.

Ответы [ 2 ]

0 голосов
/ 06 декабря 2010

Вы пробовали Загружать DropOffItems без использования Include()?

0 голосов
/ 26 октября 2010

Возможно, глупый вопрос, но вы не упоминаете в OP: вы дважды проверили, что внутреннее имя столбца для рассматриваемого поля действительно называется "Number"? Поля списка адресов объектной модели клиента и сервера по их внутреннему имени, а не (обязательно) по отображаемому имени поля.


Обновление: я бы порекомендовал получить копию CAML Query Builder U2U . Получите версию 2007 года и подключитесь к своему экземпляру 2010 года через веб-службы SharePoint. Это позволит вам сгенерировать CAML-запрос для определенного списка, и удобная часть заключается в том, что вы выбираете интересующие вас поля, и он автоматически заполняет запрос внутренними именами для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...