我如何将此查询转换为Linq?

时间:2015-10-23 16:11:49

标签: c# sql linq

我想在C#

中将此sql查询转换为Linq
 select distinct(E.Nombre), E.Puesto,E.Telefono,E.Correo1,E.Correo2
    from dbo.CCEscalaMando E 

Example output 我该怎么办?

1 个答案:

答案 0 :(得分:1)

让我们从你的SQL开始:

select distinct(E.Nombre), E.Puesto,E.Telefono,E.Correo1,E.Correo2
    from dbo.CCEscalaMando E

技术上哪个是有效的,但是它的编写方式使它看起来像是在做一些事情。以上将执行与

完全相同的操作
SELECT DISTINCT E.Nombre, E.Puesto, E.Telefono, E.Correo1, E.Correo2
FROM dbo.CCEscalaMando E

括号使它看起来像是在调用一个独特的函数,而实际上你只是使用了SELECT DISTINCT,并且你只是无条件地将第一列放在括号中。您可以将所有列放在括号中,但它对distinct:

有影响
select distinct (E.Nombre), (E.Puesto), (E.Telefono), (E.Correo1), (E.Correo2)
from dbo.CCEscalaMando E

现在我们已经删除了您的混淆位,它很容易转换:

dbContext.CCEscalaMando.Select(e=>new {
  e.Nombre,
  e.Puesto,
  e.Telefono,
  e.Correo1,
  e.Correo2})
.Distinct();