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

前端之家收集整理的这篇文章主要介绍了c# – 在客户端对象模型中使用Linq对象模型来自sharepoint前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用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();
原文链接:https://www.f2er.com/csharp/91787.html

猜你在找的C#相关文章