【问题标题】:How to display joined tables in cshtml如何在cshtml中显示连接表
【发布时间】:2016-06-14 00:26:10
【问题描述】:

我需要加入几个表格并在 cshtml 中显示它们,但我遇到了模型问题。我得到错误:

“传入字典的模型项的类型为'System.Data.Entity.Infrastructure.DbQuery1[DziennikASPTest4.Controllers.PROJEKTYController+ProwadzacyProjekty]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable1[DziennikASPTest4.Models.ProwadzacyProjekty]'。”

我已经创建了查询:

            var projekt = from p in db.PROJEKTY
                       join przedm in db.PRZEDMIOTY on p.id_przedmiotu equals przedm.id_przedmiotu
                       join prow in db.PROWADZACY on przedm.id_prowadzacego equals prow.id_prowadzacego
                       where prow.id_prowadzacego == 1
                       select new ProwadzacyProjekty
                       {
                           PROJEKTY = p,
                           PRZEDMIOTY = przedm,
                           PROWADZACY = prow

                       };
        return View(projekt);

和型号:

    public class ProwadzacyProjekty
    {
        public PROJEKTY PROJEKTY { get; set; }
        public PRZEDMIOTY PRZEDMIOTY { get; set; }
        public PROWADZACY PROWADZACY { get; set; }
    }

我尝试在 cshtml 中显示它:

@model IEnumerable<DziennikASPTest4.Models.ProwadzacyProjekty>
@foreach (var item in Model)
{
     <div>@item.PROJEKTY.opis</div>
}

我应该怎么做?

【问题讨论】:

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


    【解决方案1】:

    在将查询返回到视图之前,使用 .ToList() 解决您的查询。

    return View(projekt.ToList());
    

    另外,检查新模型的命名空间以确保您创建的是正确的类型而不是生成的实体类型。

    select new DziennikASPTest4.Models.ProwadzacyProjekty
    {
        PROJEKTY = p,
        PRZEDMIOTY = przedm,
        PROWADZACY = prow
    };
    

    【讨论】:

    • 问题出在命名空间上。难以置信.. 谢谢 4 帮助
    猜你喜欢
    • 2015-11-20
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多