C# CRM 2011 LINQ:无效的“where”条件。实体成员正在调用无效的属性或方法
我正在运行以下LINQ查询,但它抛出一个错误,表示“where”条件无效。实体成员正在调用无效的属性或方法 有人能告诉我为什么会这样吗。如果我删除conn.Record2Id.LogicalName.Equalsaccount,它将从中返回结果,但我可以在快速查看中看到LogicalName=accountC# CRM 2011 LINQ:无效的“where”条件。实体成员正在调用无效的属性或方法,c#,linq,c#-4.0,dynamics-crm-2011,dynamics-crm,C#,Linq,C# 4.0,Dynamics Crm 2011,Dynamics Crm,我正在运行以下LINQ查询,但它抛出一个错误,表示“where”条件无效。实体成员正在调用无效的属性或方法 有人能告诉我为什么会这样吗。如果我删除conn.Record2Id.LogicalName.Equalsaccount,它将从中返回结果,但我可以在快速查看中看到LogicalName=account 提前感谢CRM的LINQ转换器无法处理.Equals方法 将其更改为conn.Record2Id.LogicalName==account尝试以下操作: var connections =
提前感谢CRM的LINQ转换器无法处理.Equals方法 将其更改为conn.Record2Id.LogicalName==account尝试以下操作:
var connections = (from conn in context.CreateQuery<Connection>()
where conn.Record1Id != null
&& conn.Record1Id.Id == incidentId
&& conn.Record2Id != null
&& conn.Record2Id.LogicalName == "account"
&& conn.StateCode.Value == 0
select conn).FirstOrDefault();
很有趣,但试试这个:
var connections = (from conn in context.CreateQuery<Connection>()
where (conn.Record1Id == new EntityReference("account",incidentId)
&& conn.StateCode == 0)
select conn).FirstOrDefault();
谢谢,我试过了,但是抛出了同样的错误无效的“where”条件。实体成员正在调用无效的属性或方法。@Scorpion:对Id.Equals执行同样的操作。我已经尝试过了。即使删除conn.Record2Id.LogicalName.equalAccount查询,也会返回结果。所以我认为conn.Record1Id.Id.equalsincidentiald没有任何问题,因为我们为什么要在查询中使用“Equals”?漂亮的工作@Ryan:只需使用更自然的==运算符。您确定conn具有属性Record2Id并且具有LogicalName吗?我刚刚编辑了它。StateCode是一个OptionSetValue,因此需要将其与StateCode进行比较。值==0
var connections = (from conn in context.CreateQuery<Connection>()
where (conn.Record1Id == new EntityReference("account",incidentId)
&& conn.StateCode == 0)
select conn).FirstOrDefault();