[英]Why am I getting the error "CREATE TABLE permission denied in database 'ELITEPROD'" when I'm trying to query a view in ASP.NET MVC5 using EF?
[英]Trying to display data from other table in a single view using MVC5 and EF
如何在MVC5 EF的單個視圖中顯示來自兩個不同表的數據列表?
例如,我有兩個表(Project / Proposer),在Proposer
視圖中有Create
, Edit
和Details
頁面。 當用戶單擊“ 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
是你的背景,你可以訪問你的表Project
與db.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.