SQL Server到Linq,具有不同的内部联接

本文关键字:内部 Server Linq SQL | 更新日期: 2023-09-27 18:21:05

我正在尝试让这个查询工作,但我就是做不到。我对实体和linq很陌生。感谢

select distinct 
    Usuario.idUsuario, 
    Usuario.Nombre, 
    Usuario.DNI 
from
    Usuario 
right join 
    Relaciones on (Usuario.idUsuario = Relaciones.idUsuario) 
inner join 
    Cursos on (Relaciones.idCurso = Cursos.idCurso)

这是我迄今为止尝试的

var query = from Usuario in db.Usuario
            from Relaciones in db.Relaciones
            where Relaciones.Cursos.idCurso == id
            select distinct Usuario;

但CCD_ 1中的差异给我带来了一个错误

SQL Server到Linq,具有不同的内部联接

要使用linq模拟distinct sql子句,您需要使用distinct方法,该方法通过使用默认的相等比较器比较值来从序列中返回不同的元素。

var query = (from Usuario in db.Usuario
            join Relaciones in db.Relaciones on Usuario.idUsuario = Relaciones.idUsuario
            join Cursos in db.Cursos on Relaciones.idCurso = Cursos.idCurso
            where Cursos.idCurso == id
            select Usuario).Distinct();