我遇到了运行大部分查询的问题。我可以一次只生成一个连接到一个相关实体的链接查询。但是,当我运行具有多个连接的LINQ查询时,如下例所示,我得到"序列不包含任何元素"错误。
SELECT GROUP_CONCAT(CONCAT('a.', COLUMN_NAME, ' AS a_', COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'schema' AND TABLE_NAME = 'table';
我只能"加入"一次一个实体。我见过的其他例子允许多个连接,但我无法让它工作。
有什么建议吗?
答案 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() ;