如何在包含相关实体的实体中应用过滤条件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在包含相关实体的实体中应用过滤条件相关的知识,希望对你有一定的参考价值。
如何使用方法语法将此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;
}
你能帮忙吗?
答案
免责声明:我是Entity Framework Plus项目的所有者
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;
}
以上是关于如何在包含相关实体的实体中应用过滤条件的主要内容,如果未能解决你的问题,请参考以下文章
使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段