无法使用.Union all with Linq

时间:2016-05-08 12:22:42

标签: linq-to-sql

我有问题,你能帮助我。

var query = (from MONHOC in db.tbl_MONHOCs
                where
                    (MONHOC.IS_DELETE != 1 ||
                     MONHOC.IS_DELETE == null) &&
                    MONHOC.ISBATBUOC == 1
                select new
                {
                    ID = ("MH_CHA_" + Convert.ToString(MONHOC.ID_MONHOC)),
                    ID_NAME = MONHOC.ID_MONHOC,
                    MA_MONHOC = MONHOC.MA_MONHOC,
                    NAME = MONHOC.TEN_MONHOC,
                    ID_PARENT = 0
                }).Concat
                (from MONHOC in db.tbl_MONHOCs
                    where
                        (MONHOC.IS_DELETE != 1 ||
                         MONHOC.IS_DELETE == null) &&
                        MONHOC.ISBATBUOC == 0
                    select new
                    {
                        ID = ("MH_CON_" + Convert.ToString(MONHOC.ID_MONHOC)),
                        ID_NAME = MONHOC.ID_MONHOC,
                        MA_MONHOC = MONHOC.MA_MONHOC,
                        NAME = MONHOC.TEN_MONHOC,
                        ID_PARENT = (int?) MONHOC.ID_MONHOC_CHA
                    }
                );

错误

  

编译表达式时出错:编译表达式时出错:   ' System.Linq.IQueryable'不包含   &Concat'的定义和最好的扩展方法重载   ' System.Linq.ParallelEnumerable.Concat(System.Linq.ParallelQuery,   System.Collections.Generic.IEnumerable)'有一些无效的   arguments实例参数:无法转换   ' System.Linq.IQueryable'至   ' System.Linq.ParallelQuery'

1 个答案:

答案 0 :(得分:1)

异常消息"明确" :)告诉你,匿名类型中的属性类型不匹配。

在第一部分中你有:

ID_PARENT = 0

在第二部分:

ID_PARENT = (int?) MONHOC.ID_MONHOC_CHA

这些属性应该是int?int