编程语言
首页 > 编程语言> > c# – 带有连接的CRM LINQ查询中的异常.第二个表中的属性不存在

c# – 带有连接的CRM LINQ查询中的异常.第二个表中的属性不存在

作者:互联网

首先,我很抱歉,因为这是我第二次写这个问题,但之前的解释很糟糕,现在已经很接近了.

我正在为CRM数据库的搜索页面执行linq查询,并且如下所示的正常查询不起作用,我得到了异常:

 [System.ServiceModel.FaultException<Microsoft.Xrm.Sdk.OrganizationServiceFault>] = {"'Contact' entity doesn't contain attribute with Name = 'title'."}

对于连接查询,在子句中的位置就像r.Name ==“Me”&& j.LastName ==“他”我必须用两个Where子句进行查询,因为我得到了与上面相同的异常,说表’r’没有’LastName’attributte.

var cms = from i in aux_pr
       join cal in Contact on i.aux_CallerRequestorID.Id equals cal.ContactId.Value
       join sub in Subject on i.aux_ClassificationID.Id equals sub.SubjectId
       where cal.FullName.Contains(searchTerm) ||
       sub.Title.Contains(searchTerm)

在这种情况下,我该如何进行此查询.提前致谢!

解决方法:

我想评论我学到的东西以及我找到的解决方案,我希望能帮助一些人. CRM LINQ存在一些限制,如here所述

我找到的第一个,有这样的实体引用:

CrmEntityReference Caller
{
   Guid ID;
   string name;    
}

我可以选择Caller.name,但我不能在where子句中使用Caller.name.解决方案 – >加入表格

第二个限制是,当我们在查询中加入时,如果它们是AND谓词,我们可以在其中有不同的表,我们必须写两个子句,如下所示:

   where cal.FullName.Contains(searchTerm)
   where sub.Title.Contains(searchTerm)

但问题来自于我们需要使用OR谓词而不是AND,我们唯一的解决方案是执行两个查询并在执行这些查询的联合之后.

我有四个查询可以只用一个调用,现在处于开发阶段,由于记录的数量,性能很好,但我们将在测试阶段看到这是如何工作的.

标签:c,linq,crm,dynamics-crm,dynamics-crm-2011
来源: https://codeday.me/bug/20190620/1246684.html