Je souhaite obtenir un élément d'une liste sans charger tous les éléments de la liste. Je sais que je peux le faire en appelant SPList.getElementbyId(myID)
, mais si je ne sais pas si mon ID existe dans la liste, comment puis-je le vérifier? Oui je pourrais utiliserComment pouvons-nous vérifier l'existence d'éléments par identifiant dans les listes SharePoint?
SPListItem myItem = myList.Items[myID];
if (myItem == null)
{
// log that we don't have this item
}
Cependant, de cette façon, quand je vous appelle myList.Items
, tous les éléments de la liste sont chargés dans le dans myList
objet (et si j'ai 40.000 articles, il est vraiment une question de performace), donc je préfère utiliser:
SPListitem myItem = myList.getElementById(myID);
de cette façon, je ne vais pas appeler la Items
propriété et nous pas besoin de charger ces éléments. Maintenant, le problème est que la méthode getElementById
lèvera une exception si cet ID n'existe pas dans la liste. Ce n'est pas une solution de le mettre dans une déclaration try/catch
parce que nous pourrions vouloir vérifier plusieurs houndreds d'IDs et la manipulation de tous les throws conduira encore à un problème de performance. A utres idées pour vérifier l'existence d'un élément avec un identifiant donné?
Oui, SPQuery est le chemin. Votre requête pourrait ressembler à ceci: "+ ID +" –
drax
Et la question ne chargera pas tout le contenu des éléments? Merci pour l'indice! Toutes les autres idées seraient appréciées. – Anatol