Используя SPMETAL, я создал файл C #, позволяющий использовать LINQ для доступа к объектам Sharepoint.
Однако использование очень простого запроса приводит к странной ошибке:
Указанный состав недействителен.
Трассировка стека:
в Set__zleceniaTrigger (объект, объект)
в Microsoft.SharePoint.Linq.StaticPropertyMap.SetToEntity (сущность объекта, значение объекта)
в Microsoft.SharePoint.Linq.SPItemMappingInfo.MaterializeEntity [TEntity] (DataContext dc, список SPDataList, элемент SPListItem, элемент SPItemMappingInfo, элемент MappingInfo, JoinPath joinPath)
в lambda_method (ExecutionScope, SPListItem)
в System.Linq.Enumerable.WhereSelectEnumerableIterator 2.MoveNext()
at System.Collections.Generic.List
1..ctor (источник IEnumerable 1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable
1)
в QuickModify.Program.Main (String [] args) в C: \ XXXXXXXXX \ QuickModify \ Program.cs: строка 42
в System.AppDomain._nExecuteAssembly (сборка сборки, аргументы String [])
в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly ()
в System.Threading.ExecutionContext.Run (ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта)
в System.Threading.ThreadHelper.ThreadStart ()
Сам запрос выглядит так:
SPEntitiesDataContext ctx = new SPEntitiesDataContext("http://localhost:1080");
var tasks = ctx.Zlecenia.ToList();
Конечно, это не самый оптимальный запрос, но тот, который использует. Где фильтровать только необходимые записи, также возвращает ту же ошибку.
Я обнаружил, что могу выбирать определенные столбцы, используя .Select(z => new ZlecenieItem(){ ColumnName = z.ColumnName, ... })
, однако я не могу использовать это для выбора столбцов поиска, так как тогда я получаю следующую ошибку (даже если я выбираю только один столбец таким образом):
В запросе используются неподдерживаемые элементы, такие как ссылки на несколько списков или проекция полной сущности с использованием EntityRef / EntitySet.
Это проблематично, потому что иногда мне нужно получать значения из других списков, и было бы неплохо использовать значения поиска.
Я только что нашел свою первую настоящую ошибку в продукте MS, или (что кажется более вероятным) я что-то делаю не так?