2017-02-17 69 views
0

如何將此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) 

我考下一個,但在。凡(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

免責聲明:我是這個項目的所有者Entity Framework Plus

EF +查詢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; 
} 

百科:EF+ Query IncludeFilter

解決方案#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; 
} 
相關問題