2012-06-27 2 views
0

Мое требование состоит в том, чтобы получать элементы только из пользовательских столбцов в списке SharePoint с использованием LINQ.Как фильтровать пользовательские столбцы из списка SharePoint с помощью LINQ?

Поскольку мои пользовательские столбцы создаются динамически на основе некоторых вычислений, выполненных в другом SPList, он часто увеличивается и уменьшается в счетчике, поэтому я не могу использовать SPMetal.

мне нужно включить условие (! (SPBuiltInFieldId.Contains (field.Id))), чтобы проверить, если элементы берутся только из пользовательских полей в следующем запросе.

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

Прошу совета. Благодаря!

ответ

0

Я не уверен, что есть элемент списка, который содержит только пользовательские столбцы. Даже если Title не существует, у вас будет ID, Modified, Created и т. Д. Кроме того, будет создано несколько скрытых встроенных столбцов.

Если вы хотите получить список элементов, содержащих элементы с настраиваемыми полями, вы можете попробовать что-то вроде следующего, который использует Where и Any методы:

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

Это будет возвращать все элементы, которые имеют по крайней мере один пользовательское поле.

+0

Благодарим за отзыв. К сожалению, это не выполнило мое требование. Круг вокруг метода, который я следил, - '1. Создание пользовательских столбцов в группе 2. Запрос LINQ для фильтрации столбцов, принадлежащих к этой группе. Это отделяет пользовательские столбцы от других столбцов списка по умолчанию, но это дает только имена полей. Я новичок в LINQ, и я не знаю, как получить SPListItems с этим списком полей. Теперь я хочу, чтобы 'List AllItems = (из элемента SPListItem в oList.Items выберите {поля, которые находятся в списке AllFields}). ToList();' Пожалуйста, помогите. Благодаря! – Chari

Смежные вопросы