Pergunta

Eu tenho uma consulta CAML que fornece um resultado, se um SPfolder existe ou não.Quando eu faço o item.A contagem leva em torno de 2 s para a linha de execução .O que está errado e leva muito tempo para executar a consulta ?

SPQuery query = new SPQuery();
query.Query = "<Where><And><Eq><FieldRef Name='LinkTitle'/><Value Type='Text'>" +         folderName + "</Value></Eq><Eq><FieldRef Name='FSObjType'/><Value Type='Lookup'>1</Value></Eq></And></Where>";
query.ViewAttributes = "Scope=\"RecursiveAll\"";

//Retrieve the items based on Query                
SPListItemCollection items = list.GetItems(query);
                                //if (!folderExists)
if (items.Count == 0)
{
//Operation
}
Foi útil?

Solução

Como muitos campos estão aqui?É um padrão de documento de biblioteca, ou você pode adicionar alguns extras metadados?Mesmo se ele for normal, você necessidade para puxar todos os campos em questão?Tente modificar os campos de visão atributo de sua consulta para retornar somente as coisas de que você precisa.Caso contrário, você está percorrendo todas as pastas (o "RecursiveAll" atributo de escopo);se você tiver uma grande biblioteca, particularmente um com vários níveis, que pode muito bem levar um tempo.Se por outro lado você tem uma boa idéia do que a pasta, o item pode ser, você pode considerar o corte de pesquisa para uma única subpasta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top