2013-07-03 60 views
1

你好,我在控制器類這個lambda表達式,我想只需要modulos到型號錯誤,lambda表達式

return PartialView(db.AcessosUsuarios    
      .Join(db.Perfils, 
      Au => Au.IdPerfil, 
      p => p.IdMenu, 
      (Au, p) => new { AcessosUsuarios = Au, Perfils = p }) 
      .Where(x => x.AcessosUsuarios.IdUsuario == Usu) 
      .Join(db.Menus, 
      p => p.Perfils.IdPerfil, 
      Me => Me.IdMenu, 
      (Me, p) => new { Menus = Me, Perfils = p }) 
      .Join(db.Modulos, 
      Me => Me.Menus.Perfils.IdMenu, 
      Mo => Mo.IdModulo, 
      (Me, Mo) => new { Modulos = Mo, Menus = Me, Me.Menus.Perfils.IdMenu }) 
      .OrderByDescending(Mod => Mod.Modulos.Ordem) 
      .Join(db.AcessosAssinantes, 
      Mo => Mo.Modulos.IdModulo, 
      Aa => Aa.IdModulo, 
      (Mo, Aa) => new { Modulos = Mo, AcessosAssinantes = Aa }) 
      .Where(y => y.AcessosAssinantes.IdAssinante == Ass) 
      .Select(s => new { s.Modulos.Modulos}) 
      .ToList().AsEnumerable()); 

認爲

@model IEnumerable<Models.Modulos> 

的錯誤是:

傳入字典的模型項目類型爲'System.Collections.Generic.List 1[<>f__AnonymousType6 1 [Models.Modulos]]',但是這個字典是re需要型號'System.Collections.Generic.IEnumerable`1 [Model.Modulos]的型號,'

任何人都可以幫助我?由於

回答

2

它看起來像你這一行創建一個匿名類型不必要的:

.Select(s => new { s.Modulos.Modulos}) 

嘗試而不是簡單的(應返回IEnumerable<Modulos>):

.Select(s => s.Modulos.Modulos) 
+0

非常感謝您! – Kate

+0

謝謝,我有另一個問題... OrderBy不工作,你知道爲什麼? – Kate

+0

@Kate我不確定,但可能是因爲您在訂單後進行了連接?您可能想要最後應用OrderBy。 – McGarnagle