CRM 2011 LINQ:“where”条件无效。实体成员正在调用无效的属性或方法

时间:2013-02-11 16:09:35

标签: c# linq c#-4.0 dynamics-crm-2011 dynamics-crm

我正在运行以下LINQ查询,但是它抛出一个错误,说“无效”,其中'条件。实体成员正在调用无效的属性或方法。“

任何人都可以建议我为什么会这样。如果我从conn.Record2Id.LogicalName.Equals("account")移除WHERE,则会返回结果,但我可以在quick view中看到LogicalName =帐户。

var connections = (from conn in context.CreateQuery<Connection>()                              
                  where (conn.Record1Id.Id.Equals(incidentId) 
                  && conn.Record2Id.LogicalName.Equals("account") 
                  && conn.StateCode == 0)
                  select conn).FirstOrDefault();

先谢谢

3 个答案:

答案 0 :(得分:4)

CRM的LINQ翻译无法处理.Equals()方法。

将其更改为conn.Record2Id.LogicalName == "account"

答案 1 :(得分:0)

试试这个:

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();    

答案 2 :(得分:0)

有趣但是试试这个:)

var connections = (from conn in context.CreateQuery<Connection>()                              
                  where (conn.Record1Id == new EntityReference("account",incidentId) 
                  && conn.StateCode == 0)
                  select conn).FirstOrDefault();