Press "Enter" to skip to content

SharePoint meets LINQ to XML: CAML заявки за работа с Lists.asmx

Напоследък ми се налага да работя с LINQ to XML за интеграционни сценарии включващи Silverlight и SharePoint. LINQ to XML е страхотно – сравнително по-добре от създаване на XML чрез обекти като XmlDocument.

Ето пример – повиквам GetListItems() метода на Lists.asmx. Със следният код извличам list items от Task списъка създадени от специфичен user. Този пример би трябвало да работи както за WSS v3, така и за MSF v4.

XElement query = new XElement(“Query”,
        new XElement(“Where”,
            new XElement(“Eq”,
                new XElement(“FieldRef”, new XAttribute(“Name”, “Author”), new XAttribute(“LookupId”, “True”)),
                new XElement(“Value”, new XAttribute(“Type”, “User”), userID)
)));

XElement queryOptions = new XElement(“QueryOptions”);
XElement viewFields = new XElement(“ViewFields”);

_listService.GetListItemsAsync(“Tasks”, null,
    query, viewFields, “100”, queryOptions, null, null);

userID e SharePoint ID-то на потребителя, за който искам да видя резултатите. Можете да получите тази информация от usergroup.asmx.

Успех!