C# 不支持获取错误指定的方法
我有一个linq代码,如下所示C# 不支持获取错误指定的方法,c#,linq,sharepoint,csom,C#,Linq,Sharepoint,Csom,我有一个linq代码,如下所示 itemCol.Where(x => Convert.ToString(x[internalColumn]) == filter) .Select(x => x[internalColumn].ToString()) .Distinct() .ToList(); itemCol是托管CSOM(ListItemCollection)中的Sharepoint列表项集合。我得到一个类似“不支持指定方法”的错误 堆栈
itemCol.Where(x => Convert.ToString(x[internalColumn]) == filter)
.Select(x => x[internalColumn].ToString())
.Distinct()
.ToList();
itemCol
是托管CSOM(ListItemCollection)中的Sharepoint列表项集合。我得到一个类似“不支持指定方法”的错误
堆栈跟踪是
在Microsoft.SharePoint.Client.ClientQueryable'1.GetEnumerator()上
位于System.Collections.Generic.List'1..ctor(IEnumerable'1集合)
位于System.Linq.Enumerable.ToList[TSource](IEnumerable'1源)
这个问题只发生在客户端机器上,而不是任何开发人员机器上。我也有类似的问题
stacktrace不支持指定的方法:Microsoft.SharePoint.Client.ClientQueryable`1.GetEnumerator()(…)
我已经编写了这段代码,它在Windows Server环境下工作,但在我的Windows 10计算机上不工作:
SP.ListItemCollection collListItem = oList.GetItems(camlQuery);
clientContext.Load(collListItem, (....)
clientContext.ExecuteQuery();
var outlist = (collListItem
.Select(item => new MyClass()
{
ID = Convert.ToInt32(item["ID"])
}) as IEnumerable<MyClass>)
.ToList();
return outlist;
SP.ListItemCollection collListItem=oList.GetItems(camlQuery);
加载(collListItem,(..)
clientContext.ExecuteQuery();
var outlist=(collListItem)
.Select(项=>newmyclass()
{
ID=Convert.ToInt32(项[“ID”])
})如(可数)
.ToList();
返回最长时间;
我已经解决了在选择之前将解析集合添加到列表的问题,如下所示:
SP.ListItemCollection collListItem = oList.GetItems(camlQuery);
clientContext.Load(collListItem, (....)
clientContext.ExecuteQuery();
var outlist = (collListItem.ToList()
.Select(item => new MyClass()
{
ID = Convert.ToInt32(item["ID"])
}) as IEnumerable<MyClass>)
.ToList();
return outlist;
SP.ListItemCollection collListItem=oList.GetItems(camlQuery);
加载(collListItem,(..)
clientContext.ExecuteQuery();
var outlist=(collListItem.ToList()
.Select(项=>newmyclass()
{
ID=Convert.ToInt32(项[“ID”])
})如(可数)
.ToList();
返回最长时间;
我发现了我也有类似的问题
stacktrace不支持指定的方法:Microsoft.SharePoint.Client.ClientQueryable`1.GetEnumerator()(…)
我已经编写了这段代码,它在Windows Server环境下工作,但在我的Windows 10计算机上不工作:
SP.ListItemCollection collListItem = oList.GetItems(camlQuery);
clientContext.Load(collListItem, (....)
clientContext.ExecuteQuery();
var outlist = (collListItem
.Select(item => new MyClass()
{
ID = Convert.ToInt32(item["ID"])
}) as IEnumerable<MyClass>)
.ToList();
return outlist;
SP.ListItemCollection collListItem=oList.GetItems(camlQuery);
加载(collListItem,(..)
clientContext.ExecuteQuery();
var outlist=(collListItem)
.Select(项=>newmyclass()
{
ID=Convert.ToInt32(项[“ID”])
})如(可数)
.ToList();
返回最长时间;
我已经解决了在选择之前将解析集合添加到列表的问题,如下所示:
SP.ListItemCollection collListItem = oList.GetItems(camlQuery);
clientContext.Load(collListItem, (....)
clientContext.ExecuteQuery();
var outlist = (collListItem.ToList()
.Select(item => new MyClass()
{
ID = Convert.ToInt32(item["ID"])
}) as IEnumerable<MyClass>)
.ToList();
return outlist;
SP.ListItemCollection collListItem=oList.GetItems(camlQuery);
加载(collListItem,(..)
clientContext.ExecuteQuery();
var outlist=(collListItem.ToList()
.Select(项=>newmyclass()
{
ID=Convert.ToInt32(项[“ID”])
})如(可数)
.ToList();
返回最长时间;
我找到了它参见。正如他所写:
导致此问题的原因是Sharepoint集合类型不支持完整范围的Linq表达式。若要解决此问题,请使用另一个.ToList()
将其从Sharepoint集合转换为通用列表,如下所示
尝试:
正如他所写的:
导致此问题的原因是Sharepoint集合类型不支持完整范围的Linq表达式。若要解决此问题,请使用另一个.ToList()
将其从Sharepoint集合转换为通用列表,如下所示
尝试: