2015-04-24 10 views
10

Sto provando a estrarre tutte le informazioni sui progetti da SharePoint utilizzando CSOM (Client Side Object Model). Ecco come sto ottenendo informazioni Progetti:Come includere FieldValues ​​del progetto nella richiesta CSOM

projectContext.Load(projectContext.Projects, 
    c => 
     c.Where(p => p.Id == new Guid(id)) 
      .IncludeWithDefaultProperties(f => f.Name, f => f.Owner.Id, f => f.CreatedDate, 
       f => f.StartDate, f => f.FinishDate, f => f.PercentComplete, f => f.Description)); 

projectContext.Load(projectContext.LookupTables, c => c.Include(f => f.Id, f => f.Entries)); 
projectContext.Load(projectContext.Web.SiteUsers); 
projectContext.ExecuteQuery(); 

Tuttavia, ho anche bisogno di recuperare le proprietà FieldValues ​​da quei progetti, e io non riesco a capire come includerlo nella stessa query. Ho trovato come farlo a livello di progetto dopo ho recuperato progetti dal codice di cui sopra, in questo modo:

var pubProject = project.IncludeCustomFields; 
projectContext.Load(pubProject); 
projectContext.Load(pubProject.CustomFields); 

projectContext.ExecuteQuery(); 

var fieldValues = pubProject.FieldValues; 

Ora pubProject conterrà informazioni FieldValues, ma utilizzando questo approccio per tutti i progetti diventa troppo lento (ci vuole 1 - 4 secondi per effettuare una chiamata a SharePoint), dal momento che ho bisogno di fare una richiesta aggiuntiva per ogni progetto e le migliori pratiche per CSOM è di effettuare il minor numero di chiamate possibili.

Se io includono FieldValues ​​nei campi include, come questo:

projectContext.Load(projectContext.Projects, 
    c => 
     c.Where(p => p.Id == new Guid(id)) 
      .IncludeWithDefaultProperties(f => f.Name, f => f.Owner.Id, f => f.CreatedDate, 
       f => f.StartDate, f => f.FinishDate, f => f.PercentComplete, f => f.Description, f => f.FieldValues)); 

che sto ricevendo seguente errore:

The query expression 'f.FieldValues' is not supported.

+0

I'm fac lo stesso problema qui. Qualche aggiornamento sul problema? –

+0

@HellKeeper Non ci sono aggiornamenti su questo. Non ho trovato la soluzione. –

risposta

0

Credo che è necessario mettere f => f.CustomFields nel vostro .IncludeWithDefaultProperties dichiarazione invece di f.FieldValues - Caricamento CustomFields dovrebbe essere compilato FieldValues

Problemi correlati