2012-06-27 4 views
0

필자의 요구 사항은 LINQ를 사용하는 SharePoint 목록의 항목을 사용자 지정 열에서만 가져 오는 것입니다.LINQ를 사용하여 SharePoint 목록에서 사용자 지정 열을 필터링하는 방법은 무엇입니까?

내 사용자 지정 열은 다른 SPList에서 수행 된 일부 계산을 기반으로 동적으로 만들어 지므로 자주 증가하고 감소하므로 SPMetal을 사용할 수 없습니다.

(! (SPBuiltInFieldId.Contains (field.Id))) 조건을 포함시켜 항목이 다음 쿼리의 사용자 지정 필드에서만 사용되는지 확인해야합니다.

List<SPListItem> AllResponses = (from SPListItem Response in oList.Items 
           select Response).ToList(); 

감사!

답변

0

맞춤 항목 만 포함하는 목록 항목을 가질 수 있는지 확실하지 않습니다. Title이 없더라도 ID, 수정 됨, 작성됨 등이 있습니다. 또한 숨겨진 내장 열이 여러 개 있습니다.

List<SPListItem> AllResponses = 
    (from SPListItem Response in oList.Items select Response) 
    .Where(item => item.Fields 
     .Cast<SPField>() 
     .Any(field => !SPBuiltInFieldId.Contains(field.Id))) 
    .ToList(); 

이 하나 이상있는 모든 항목을 반환합니다 : 사용자 정의 필드 항목이 포함 된 항목의 목록을 원하는 경우

, 당신은 WhereAny 방법을 이용하여 다음과 같은 무언가를 시도 할 수 있습니다 사용자 정의 필드.

+0

응답 해 주셔서 감사합니다. 불행히도 이것은 나의 요구 사항을 충족시키지 못했습니다. 내가 따라 갔던 방법에 관한 라운드는'1. 그룹 아래에 사용자 지정 열 만들기 2. LINQ 쿼리를 사용하여이 그룹에 속한 열 필터링 사용자 지정 열을 다른 기본 목록 열과 구분하지만 필드 이름 만 제공합니다. 저는 LINQ를 처음 사용하고 있으며이 필드 목록을 사용하여 SPListItems를 가져 오는 방법을 알지 못합니다. 이제 내가 원하는 건 List AllItems = (oList.Items의 SPListItem 항목에서 {AllFields 목록에있는 필드} 선택) .ToList();'도와주세요. 감사! – Chari

관련 문제