【发布时间】:2011-09-01 15:48:04
【问题描述】:
我在尝试让 LINQ 查询与 CRM 2011 一起工作时遇到了很多困难。每当我有三个或更多连接表时就会出现问题(似乎与哪个 CRM 表无关),我尝试添加一个WHERE 子句(与我过滤的表无关)。如果我删除 WHERE 子句,查询运行良好,我可以遍历结果集。我也可以保留 WHERE 子句,但删除第三个连接,它也可以工作。我已经对许多 CRM 实体进行了尝试,并且得到了相同的错误“'Join' 操作的结果选择器必须返回两个属性的匿名类型。”似乎有一个限制,如果我想使用单个 WHERE 子句,我只能加入两个表。
我在发出 LINQ 查询时使用了早期绑定 CRM 上下文生成的代码方法。这是从 CRM SDK 示例中提取的代码,除了我添加了 WHERE 子句。我在任何地方都找不到如何做到这一点的例子。
Dim MyVar = From a In svcContext.AccountSet _
Join c In svcContext.ContactSet On a.PrimaryContactId.Id Equals c.ContactId _
Join l In svcContext.LeadSet On a.OriginatingLeadId.Id Equals l.LeadId _
Where a.Name.Contains("c") _
Select New With {c.FullName}
For Each MyItem In MyVar
Debug.Print(MyItem.FullName)
Next
感谢您的帮助!
【问题讨论】:
-
不使用 svcContext.LeadSet 为什么要加入它?
标签: linq join inner-join crm dynamics-crm-2011