Obtenir de l'élément de la liste de valeurs de champ à partir d'un SP Liste à l'aide du Modèle Objet Client
Quelle est la meilleure façon d'obtenir une liste des éléments et leurs propriétés à partir d'un SP liste à l'aide du modèle objet Client?
Voici le code que j'utilise.
string server = "http://localhost";
ClientContext context = new ClientContext(server);
Web web = context.Web;
var spList = web.Lists.GetByTitle("Contact");
CamlQuery query = new CamlQuery();
var items = spList.GetItems(query);
context.Load(items,
itema => itema.Include(
item => item,
item => item["CustomerId"]));
context.ExecuteQuery();
Console.WriteLine("Items");
foreach (var item in items.ToList())
{
context.Load(item);
}
context.ExecuteQuery();
foreach (var item in items)
{
foreach (var a in item.FieldValues)
{
Console.WriteLine(a.Key + ":" + a.Value.ToString());
}
}
Je veux enlever le seul liner foreach utilisé pour charger l'élément de liste dans le contexte, et si possible de charger l'élément de valeurs de champ dans la première Exécution de la Requête elle-même.
J'ai essayé d'utiliser la suite
context.Load(items,
itema => itema.Include(
item => item,
item=> item.FieldValues,
item => item["CustomerId"]));
qui ne fonctionne pas.
Quelqu'un peut fournir une solution plus propre?
OriginalL'auteur Sandeep Singh Rawat | 2010-12-16
Vous devez vous connecter pour publier un commentaire.
Le moyen le plus efficace pour la requête SharePoint est d'utiliser une Requête CAML. En appelant le (SP)de la Liste.GetItems(camlQuery). Vous recevrez toujours une instance de (SP)ListItemCollection.
Donc, le plus efficace de la requête devrait ressembler à ceci
Thorsten
OriginalL'auteur Thorsten Hans
Je ne suis pas 100% sûr de ce que les propriétés que vous souhaitez obtenir dans les champs mais vous pouvez jouer avec les éléments suivants:
OU
Le bien que vous cherchez, peut-être en fait en vertu de la SPField objet. Jetez un oeil ici pour les propriétés et méthodes disponibles: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfield_members(v=office.12).aspx
Espère que cette aide. Sinon quelques infos sur les propriétés que vous voulez sortir de la " liste de champs peut aider à fournir une solution plus précise?
votre réponse est sur le modèle objet serveur pas de modèle objet client qui est ce que la question se pose au sujet de.
oui, bon point... désolé, j'ai complètement mal lu celui-ci!
OriginalL'auteur Luke
Modifier votre code.
Alors appel LoadQuery() au lieu de Charger()
Vous pouvez ajouter d'autres expressions de lire la propriété de la
ListItem
que tu voulais comme ceci:Je me suis fait avoir de la difficulté à faire
item => item.FieldValues
, maisitem => item.FieldValuesAsText
œuvres. Je ne sais pas pourquoi 🙁 Mais juste fairecontext.LoadQuery(items)
devrait faire ce que vous voulez.OriginalL'auteur airmanx86