首页 > 解决方案 > 无法在列表中应用联合LINQ

问题描述

我正在尝试将 LINQ 查询的两个结果与我的DbContext

var innerJoin = (from pg in context.TbPlageAccueil
                             join pf in context.TbPermanence on pg.IdPlageAccueil equals pf.IdPlage
                             where pf.HeureDebPerm > new DateTime(2016, 10, 1) && pf.HeureFinPerm < new DateTime(2016, 12, 31)
                             select new{ Libelle_Activite = pg.LibellePlageAccueil, Heure_Debut_Activite = pf.HeureDebPerm, Heure_Fin_Activit = pf.HeureFinPerm }).ToList();

var reunion= (from ru in context.TbReunion select new { Libelle_Activite = ru.IntituleReunion, Heure_Debut_Activite = ru.HeureDebRn, Heure_Fin_Activite = ru.HeureFinRn }).ToList();

当我为这两个结果应用联合时,我得到了这个错误:

CS1929 C# 'List << 匿名类型:字符串 Libelle_Activite,DateTime?Activity_Start_Time,日期时间?Time_Fin_Activit >> Queryable.Union << 匿名类型:字符串 Libelle_Activite,DateTime?Activity_Start_Time,日期时间?Time_Fin_Activite >> (IQueryable <<匿名类型:字符串Activity_Label,DateTime?Activity_Start_Time,DateTime?Time_Time_Time>>,IEnumerable <<匿名类型:字符串Activity_Label,DateTime?Time_Time_Time>>,IEnumerable <<匿名类型:字符串Activity_Label,DateTime?Time_Time_Activity >>, DateEnime?<< 匿名类型:字符串 Libelle_Activite, DateTime?Time_Debut_Activite, DateTime?Time_End_Activite

我做错了什么?如何解决这个问题?

标签: c#.netlinq

解决方案


Heure_Fin_Activit您已经在中定义了一个属性innerJoin,而它Heure_Fin_Activite在 中reunion。您需要确保它们具有相同的名称和类型:

var reunion= (from ru in context.TbReunion select new 
              { Libelle_Activite = ru.IntituleReunion, 
                Heure_Debut_Activite = ru.HeureDebRn, 
                Heure_Fin_Activit = ru.HeureFinRn }).ToList();

推荐阅读