簡體   English   中英

嘗試使用MVC5和EF在單個視圖中顯示其他表中的數據

[英]Trying to display data from other table in a single view using MVC5 and EF

如何在MVC5 EF的單個視圖中顯示來自兩個不同表的數據列表?

例如,我有兩個表(Project / Proposer),在Proposer視圖中有CreateEditDetails頁面。 當用戶單擊“ Details鏈接時,頁面將顯示該提議者的詳細信息。 但是,如何顯示該提議者的項目列表?

這是我當前的ProposerController

public ActionResult Details(int? id)
{
    if (id == null)
    {
        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
    }
    Proposer proposer = db.Proposers.Find(id);
    var proposers = db.Proposers.ToList();
    if (proposer == null)
    {
        return HttpNotFound();
    }
    return View(proposer);
}

假設db是你的背景,你可以訪問你的表Projectdb.Projects ,就像你做了Proposer 然后,按照注釋中的建議編寫一個ViewModel並顯示它-voilà。

您的LINQ查詢應類似於:

var proposer = db.Proposers
    .Include(x => x.Projects)
    .SingleOrDefault(x => x.ID == id);

Include語句告訴Entity Framework包含具有相同查詢的Projects數據,從而僅對數據庫進行一次調用。

然后,您可以像以下方式訪問項目:

foreach(var project in proposer.Projects)
{
    // Do your stuff
}

也就是說,我強烈建議您閱讀有關ViewModels的更多信息以及有關如何將數據傳遞和/或轉換為表示層的最佳實踐。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM