具有多个联接的Dynamics 365 OrganizationServiceContext Linq查询

时间:2017-08-23 16:43:52

标签: c# linq dynamics-crm dynamics-365

我遇到了运行大部分查询的问题。我可以一次只生成一个连接到一个相关实体的链接查询。但是,当我运行具有多个连接的LINQ查询时,如下例所示,我得到"序列不包含任何元素"错误。

SELECT GROUP_CONCAT(CONCAT('a.', COLUMN_NAME, ' AS a_', COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'schema' AND TABLE_NAME = 'table';

我只能"加入"一次一个实体。我见过的其他例子允许多个连接,但我无法让它工作。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

看起来您正在使用关系名称而不是联接中的查找字段名称。使用查找字段名称可能看起来像这样:

var query = (from permission in context.CreateQuery<ServiceModel.Types.idoe_permission>()
         join contact in context.CreateQuery<ServiceModel.Types.Contact>() on permission.idoe_contactid.Id equals contact.Id
         join corporation in context.CreateQuery<ServiceModel.Types.idoe_corporation>() on permission.idoe_corporationid.Id equals corporation.Id
         join role in context.CreateQuery<ServiceModel.Types.idoe_role>() on permission.idoe_roleid.Id equals role.Id
         where contact.idoe_ADB2CID == request.UserId
         select new { Corporation = corporation, Role = role }).ToList() ;