我已經能夠用我的第一個MVC項目做了很多很酷的事情。但是,我不是一個訓練有素的程序員,所以我有時會被困在簡單的事情上。我使用實體框架以及預定義的數據庫表列表獲得了一切工作,但是我的應用程序需要在生成它們時自動使用新表,所以我決定使用一個調用函數而不是實體。列出數據庫項目的頁面正在工作,但我在顯示特定項目的詳細信息的頁面上遇到問題。我不知道如何在ID傳遞,然後顯示該ID信息...如何db.Find(id)沒有實體?
實體方式
public ActionResult Summary(string id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
ixoc_G0000102_RunSummary ixoc_G0000102_RunSummary = db.ixoc_G0000102_RunSummary.Find(id);
if (ixoc_G0000102_RunSummary == null)
{
return HttpNotFound();
}
return View(ixoc_G0000102_RunSummary);
}
的新途徑
public ActionResult Summary(string id)
{
if (Session["LoggedUser"] == null)
{
return RedirectToAction("Login", "Account");
}
else
{
UserData userd = (UserData)Session["LoggedUser"];
CustomerData customerd = (CustomerData)Session["LoggedCustomer"];
List<NodeInfo> nodes = siteContext.siServerConnect.GetNodes(customerd.ixguid, customerd.AccessLevel);
nodes = nodes.OrderBy(x => x.name).ToList();
string[] online = siteContext.siServerConnect.GetLiveNodesFromServer();
List<string> nodeNames = new List<string>();
DateTime endTime = DateTime.Now;
TimeSpan periodToQuery = new TimeSpan(7, 0, 0, 0);
DateTime startTime = endTime - periodToQuery;
foreach (NodeInfo n in nodes)
{
nodeNames.Add(n.name);
}
List<AverageNodeValues> runs = siteContext.siServerConnect.GetRuns(nodeNames, startTime, endTime);
runs = runs.Find(id);
DataWrapper wrapper = new DataWrapper(nodes, online, runs);
return View(wrapper);
}
}
也有一些是錯誤的Find(id)部分,非常感謝任何幫助!