c# - 'where' 条件无效。实体成员正在调用无效的属性或方法

标签 c# linq dynamics-crm dynamics-crm-2013

我尝试了几种方法来搜索在 membresEquipeDuClient 列表中具有 propritaire.id 的客户端,但每次我都收到“无效的‘where’条件。实体成员正在调用无效的属性或方法。” -错误!

我在第二个请求中得到了错误,

我用过的方法:

List<TeamMembership> membresEquipeDuClient = (from k in context.CreateQuery<TeamMembership>()
                                              where k.teamid == equipeDuClient.Id
                                              select k).ToList();
var pRechercheNumeroClient = (from p in context.CreateQuery<Client>()
                              where membresEquipeDuClient.Any(a => a.systemuserid == p.proprietaire.Id)
                              select p).FirstOrDefault();

知道如何解决这个问题吗?

感谢所有帮助!

最佳答案

如评论中所述,不支持Any,但支持Contains。所以你可以这样做:

var systemUserIds = 
(
    from k in context.CreateQuery<TeamMembership>()
    where k.teamid == equipeDuClient.Id
    select k.systemuserid // Select the Id only
).ToList();

var pRechercheNumeroClient = 
(
    from p in context.CreateQuery<Client>()
    where systemUserIds.Contains(p.proprietaire.Id)
    select p
).FirstOrDefault();

我不熟悉 Dynamics CRM,但我认为您可以从第一个语句中删除 ToList,这样它将是一个 IQueryable,并且两个语句都是作为一个表达式执行。

关于c# - 'where' 条件无效。实体成员正在调用无效的属性或方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31201990/

相关文章:

c# - 列表的所有排列

c# - 无效的列名称 ID-Entity Framework

c# - 返回 LINQ 查询以查看并循环查看 View 中的结果

linq - Linq 查询的这一部分叫什么?

dynamics-crm - CRM 2015 流程并选择工作流程,然后单击“添加步骤”执行未出现在列表中的操作

c# - 如何获得下划线对象?

c# - C# 的 WebP 库

c# - 从导航属性选择器字符串创建 MemberExpression,C#?

c# - Dynamics CRM 2011 - LINQ - 检索客户和联系人之间的连接

c# - 使用备用键删除