2016-09-14 3 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에 대해 하나의 행을, approved에 대해 다른 행을 가질 수 있습니다. 따라서 상태가 'Pending' 인 비 중복 항목 만 가져와야합니다. count = 1 인 사람들 만 가져올 수 있습니까? 왜냐하면 난 그냥 모든 항목을로드 할 수 다음 linq 목록을 사용하여 그것을 조작 생각 해요. 아니면 다른 제안이 있습니까?

답변

0

제 생각에는 실제로 잘 작동해야하는 ItemCollection에서도 linq을 사용하고있었습니다.

하지만 '보류'행만 선택하면 중복되지 않을까요? 또는 'request_100'과 같이 statusses 'Pending'과 같은 항목이 여러 개있을 수 있습니까?

확인 당신과 비슷하다이 질문은 : https://sharepoint.stackexchange.com/questions/43262/how-to-use-groupby-in-caml-query

+0

은 어떤 이유로 사랑하는 상태로 request_100있다. 예를 들어, 처음에는 request_100이 '보류 중'이고 '승인'되면 다른 행이 생깁니다. 따라서 필터가있는 Caml 쿼리를 사용하여 '보류 중'만 가져 오는 항목을 가져 오는 것은 '보류 중'인 request_100이 더 이상 사용되지 않는지 확인할 수 없습니다. 그룹을 사용하면 내가 사용할 수 있다고 생각합니다. 고맙습니다 –