【问题标题】:Getting an error specified method is not supported不支持获取错误指定方法
【发布时间】:2017-04-24 12:37:55
【问题描述】:

我有一个如下所示的 linq 代码

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 源)

这个问题只发生在客户端机器上,而不是任何开发机器上。

【问题讨论】:

    标签: c# linq sharepoint csom


    【解决方案1】:

    我也遇到过类似的问题

    堆栈跟踪不支持指定的方法: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);
    clientContext.Load(collListItem, (....)
    clientContext.ExecuteQuery();
    var outlist = (collListItem.ToList()
              .Select(item => new MyClass()
              {
                  ID = Convert.ToInt32(item["ID"])
              }) as IEnumerable<MyClass>)
              .ToList();
    return outlist;
    

    我找到了here

    【讨论】:

      【解决方案2】:

      Stephen Turner's answer。正如他所写:

      问题是由于 Sharepoint 集合类型不支持所有 Linq 表达式而导致的。要解决此问题,请将其从 Sharepoint 集合转换为带有另一个 .ToList() 的通用列表,如下所示。

      试试:

      itemCol.ToList()
         .Where(x => Convert.ToString(x[internalColumn]) == filter)
         .Select(x => x[internalColumn].ToString())
         .Distinct()
         .ToList();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-12
        • 1970-01-01
        • 2011-09-09
        • 2013-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-28
        相关资源
        最近更新 更多