加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在客户端对象模型中使用Linq对象模型来自sharepoint

发布时间:2020-12-15 04:23:17 所属栏目:百科 来源:网络整理
导读:我正在尝试使用LINQ对我从客户端对象模型得到的结果. var rolesAssignments = context.Web.RoleAssignments;context.Load(rolesAssignments,roles = roles.IncludeWithDefaultProperties(role = role.Member,role = role.RoleDefinitionBindings));context.E
我正在尝试使用LINQ对我从客户端对象模型得到的结果.
var rolesAssignments = context.Web.RoleAssignments;
context.Load(rolesAssignments,roles => roles.IncludeWithDefaultProperties(role => role.Member,role => role.RoleDefinitionBindings));
context.ExecuteQuery();
var hasAdmin = rolesAssignments.Select(x => x.RoleDefinitionBindings.Cast<RoleDefinition>().Select(y => y.RoleTypeKind == RoleType.Administrator)).Any();

我得到:

{System.NotSupportedException: Invalid usage of query execution. The query should be executed by using ExecuteQuery method on the client context object.

但是,当我重写这个以使用嵌套foreach循环,它工作正常.

从我可以从我的LINQ查询看到,我不使用任何未加载的属性.

解决方法

这是我的头顶,但它应该给你的想法.您可能会在查询中收到有关使用Any的投诉.如果这样删除它,然后在ExecuteQuery完成后检查hasAdmin.Any().
var query = rolesAssignments.Select(x => x.RoleDefinitionBindings.Cast<RoleDefinition>().Select(y => y.RoleTypeKind == RoleType.Administrator)).Any();
var hasAdmin = context.LoadQuery(query);
context.ExecuteQuery();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读