如何使用方法语法将此SQL查询转换为LinqToEntity语法?
SELECT Recurso.IdRecurso, Recurso.Codigo,
Recurso.Titulo, Recurso.Descripcion
FROM Recurso INNER JOIN
RecursoUsuario ON Recurso.IdRecurso = RecursoUsuario.IdRecurso
WHERE (RecursoUsuario.IdUsuario = 1)
我接下来测试,但错误在.Where(x => x.RecursoUsuario。 IdUsuario == idUsuario)
public List<Recurso> RecursosPorUsuario(int idUsuario)
{
List<Recurso> ru =
bd.Recurso.Include("RecursoUsuario")
.Where(x => x.RecursoUsuario.IdUsuario == idUsuario);
return ru;
}
请问你好吗?
答案 0 :(得分:0)
免责声明:我是该项目的所有者Faster way to rank rows in subgroups in pandas dataframe.
EF + Query IncludeFilter功能允许过滤相关实体。
public List<Recurso> RecursosPorUsuario(int idUsuario)
{
List<Recurso> ru = bd.Recurso
.IncludeFilter(x => x.RecursoUsuario
.Where(x => x.RecursoUsuario.IdUsuario == idUsuario))
.ToList();
return ru;
}
解决方案#2
另一种技术是使用投影(这是我的图书馆在幕后做的)
public List<Recurso> RecursosPorUsuario(int idUsuario)
{
List<Recurso> ru = bd.Recurso
.Select(x = new {
Recurso = x,
RecursoUsuarios = x.RecursoUsuario.
.Where(x => x.RecursoUsuario.IdUsuario == idUsuario)
})
.ToList()
.Select(x => x.Recurso)
.ToList();
return ru;
}