C# 如何将此查询转换为Linq?
我想将此sql查询转换为C中的Linq#C# 如何将此查询转换为Linq?,c#,sql,linq,C#,Sql,Linq,我想将此sql查询转换为C中的Linq# 我该怎么做?让我们从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
我该怎么做?让我们从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
括号使它看起来像是在调用一个distinct函数,而实际上您只是使用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();
显示一些示例输入和预期输出。我只是编辑了帖子并添加了一张图片。我的答案有问题吗?.Distinct()它不起作用,句子显示所有数据而没有Distinc:(这显示557行var lista=agp.cc15escalamando().Select(e=>new{e.Nombre,e.Puesto,e.Telefono,e.Correo1,e.Correo2})。Distinct().选择(x=>new UsariNotificationViewModel{Nombre=x.Nombre,Puesto=x.Puesto,Telefono=x.Telefono,Correo1=x.Correo1,Correo2=x.Correo2});sql查询555行可能是字段中有尾随空格,或者一行或多行大小写混合。在sql中,这些行将组合在一起,但默认情况下不会在LINQ中。
dbContext.CCEscalaMando.Select(e=>new {
e.Nombre,
e.Puesto,
e.Telefono,
e.Correo1,
e.Correo2})
.Distinct();