【问题标题】:Model error, lambda expression模型错误,lambda 表达式
【发布时间】:2013-07-03 23:26:30
【问题描述】:

你好,我在控制器类中有这个 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.List1[&lt;&gt;f__AnonymousType61[Models.Modulos]]”,但此字典需要类型为“System.Collections.Generic.IEnumerable”的模型项`1[Models.Modulos]'

谁能帮帮我??谢谢

【问题讨论】:

    标签: c# asp.net-mvc entity-framework lambda


    【解决方案1】:

    看起来你用这行不必要地创建了一个匿名类型:

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

    简单地尝试(应该返回IEnumerable&lt;Modulos&gt;):

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

    【讨论】:

    • 谢谢,我还有一个问题……OrderBy 不起作用,你知道为什么吗??
    • @Kate 我不确定,但也许是因为您在订购后加入了?您可能想最后应用 OrderBy。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多