2016-09-14 11 views
0

私の最初の目標は'Pending'というステータスを持つすべてのアイテムを私のsharepoint listに入れることです。私のコードは、これまでのところ、このようなものです:それは働いているが、私は、特定のアイテムがそのリストに超える1を挿入することができることを実現CAML非重複のみを取得するクエリ

using (var clientContext = new ClientContext(spSite.Trim())) 
      { 
       clientContext.Credentials = GetNetworkCredential(); 
       var approvalLists = clientContext.Web.Lists.GetByTitle(approvalLibraryName); 

       CamlQuery query = new CamlQuery(); 
       query.ViewXml = "<View>" + 
            "<Query>" + 
             "<Where>" + 
              "<Eq>" + 
               "<FieldRef Name='IsApproved'/><Value Type='Choice'>Pending</Value>" + 
              "</Eq>" + 
             "</Where>" + 
            "</Query>" + 
           "</View>"; 

       ListItemCollection approvalListItem = approvalLists.GetItems(query); 
       clientContext.Load(approvalListItem); 
       clientContext.ExecuteQuery(); 

      } 

。たとえば、項目request_100の場合、pendingには1行、approvedには1行を指定できます。したがって、ステータスが'Pending'の重複していない項目のみを取得する必要があります。 count = 1の人だけをフェッチしてグループ化することは可能ですか?すべてのアイテムをロードしてlinqリストを使用して操作できるかどうかを考えているからです。あるいは、あなたにはこれについての別の提案がありますか?

答えて

0

私の最初の考えは、本当にうまく動作するはずのItemCollectionでlinqを使用していたことです。

しかし、「保留中の」行だけを選択した場合、重複はありませんか?または、ステータスが「保留中」の「request_100」のようなアイテムが複数あることがありますか?

チェックあなたに似ているこの質問は:https://sharepoint.stackexchange.com/questions/43262/how-to-use-groupby-in-caml-query

+0

は、何らかの理由でdiffの状況とrequest_100があります。たとえば、最初にrequest_100が 'Pending'になり、 'Approved'になると別の行が表示されます。だから、それらの 'Pending'だけを取得するフィルタ付きCamlクエリを使用して項目を取得することは、 'Pending'としてのrequest_100が時代遅れであるかどうかをチェックすることはできません。 by by groupを使うと、私も使うことができると思います。ありがとうございました –

関連する問題