2015-10-23 258 views
1

我想这个SQL查询转换为LINQ的在C#中如何将此查询转换为Linq?

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

Example output 我该怎么办?

+0

显示一些样本输入预期产出。 –

+0

我只是编辑帖子并添加图片 –

+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,而你只是把括号无缘无故的第一列。你可以把括号中的所有列,但它对不同的效果:

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(); 
+0

.Distinct()它不工作,这句话显示所有数据,而无需disctinc :( –

+0

这个节目557行VAR LISTA = agp.CC15_EscalaMando()。选择 \t \t(E =>新{ \t \t e.Nombre, \t \t e.Puesto, \t \t e.Telefono, \t \t e.Correo1, \t \t e.Correo2}) \t \t .Distinct(),选择( \t \t X =>新UsuarioNoti ficacionViewModel { \t \t \t \t农布雷= x.Nombre, \t \t \t \t Puesto = x.Puesto, \t \t \t \t Telefono = x.Telefono, \t \t \t \t Correo1 = x.Correo1, \t \t \t \t Correo2 = x.Correo2 \t \t})。OrderBy(x => x.Nombre); 和sql查询555行 –

+0

您的字段可能在其中包含尾随空格,或者一行或多行有混合大小写。在SQL中,这些将被组合,但在默认情况下不会在LINQ中。 –