【发布时间】:2018-10-02 13:45:54
【问题描述】:
我想把下面的代码转换成LINQ
SELECT bpac.cmp FROM bpac
UNION
SELECT bpai.cmp FROM bpai
GROUP BY cmp
ORDER BY cmp DESC
我正在尝试获取第一个表,但出现错误:
List<string> listaBpac = modelOff.bpacs.Where(p => p.ibge == oUsuario.ibge)
.Select(p => new { p.cmp })
.ToList();
错误:
不能将类型'system.collections.generic.list "anonymous type: string cmp"'隐式转换为'system.collections.generic.list "anonymous type: string"'
【问题讨论】:
-
用
new { p.cmp }初始化一个匿名类型,它有一个cmp类型的string属性。但是你想填写一个List<string>,所以你不需要那个匿名类型。因此,只需直接选择该属性p.cmp,无需匿名类型。 -
您的 sql 效率低下,因为
UNION已经删除了重复项(而不是UNION ALL),您不需要GROUP BY。
标签: entity-framework linq