2016-05-26 15 views
1

私はこのようなオフを開始するメタデータサービスの管理のSharePointへの呼び出しを行い、いくつかのコードを持っている:私は何の問題もない理解ClientContext.Loadのパラメータ

var clientContext = new ClientContext("http://mysharepointsite/") 
    { AuthenticationMode = ClientAuthenticationMode.Default}; 

var taxonomySession = TaxonomySession.GetTaxonomySession(clientContext); 
var termStore = taxonomySession.GetDefaultSiteCollectionTermStore(); 

を。しかし、我々はこの後:

clientContext.Load(termStore, 
     store => store.Name, 
     store => store.Groups.Include(
      group => group.Name, 
      group => group.TermSets.Include(
       termSet => termSet.Name, 
       termSet => termSet.Terms.Include(
        term => term.Name) 
      ) 
     ) 
); 

誰も私がここで何が起こっているかを理解する助けてくださいことはできますか?まず

  • 私は、これはLINQクエリのいくつかの種類だと思ったが、その後、私はクラスがそうでないラインusing System.Linq;を有することが期待されます。

  • 私はVisual Studioでのコールはこのように構成されていると言う一部のIntelliSenseがあることに気づい

    void ClientruntimeContext.Load<T>(T clientObject, params System.Linq.Expressions.Expression<Func<T, object>>[] retrievals) - それは

  • が、私はコードがあることを理解して何らかの方法でLINQのを使用しているように思われてしまいます特定のSharePointサイトからManaged Metadata ServiceのTermstoreデータを何らかの形でロードしていますが、その構文が何をしているのかはよく分かりません。

  • 私はコードサンプルをhereから得ました。それは私がしたいことを正確に行いますが、私が実際にその構文を理解すればもっと快適に感じるでしょう!それだけで何もすることができ<T>としてLoad() Sパラメータを、定義として

  • The documentationは、また、特に有用ではなかったです!

何かアドバイスやお読みになりまして大変ありがとうございます。

答えて

4

ClientRuntimeContext.Load<T> Method

この方法の第2のパラメータは、ターゲット・クライアント・オブジェクト(最初のパラメータ)の特性は、ラムダ式を使用して取得すべきかを指定します。

例次のクエリで

コレクションなどTermStore client objectTermStore.Groupsとしてプロパティを除くすべてのプロパティは、プロパティの唯一の明示的に指定したリストの次のクエリで

ctx.Load(termStore); 

を取得されます(,TermStore.Groups)がTermStore client objectのために取得されます:

ctx.Load(termStore, store => store.Name, store => store.Groups); 

次に収集するクライアントオブジェクトのプロパティを取得する方法を指定するには、Include<TSource>(IQueryable<TSource>, \[\]) methodメソッドがここで救済されます。

Include<TSource>(IQueryable<TSource>, \[\]) method

この方法は、特性が(パフォーマンスのために)オブジェクト

のコレクション例

次の式から返されたものを制限するために使用される

ctx.Load(termStore, store => store.Groups.Include(g => g.Name)); 

を返すクエリを作成するように指示します。クライアントのオブジェクトのGroupのデフォルトプロパティではなく、TermStore.Groupsのプロパティを含む、プロパティはGroup.Nameのみです。