我有一個問題。ASP.NET MVC 3多個模型使用數據庫的單個窗體
我的問題實際上是擴展了從this之一:
不久 - 我想:3個模型,以及1超級模特這個特定視圖。這個超級模型填充(正確)IENumerable,IENumerable,IENumerable,在View部分中使用它們。 (據我所知,至少...)
在這個話題等雷維爾丹檸提出了很好的和優雅的解決方案,但這種方法不能從DB本身獲取數據...
問題: 必須做什麼才能從數據庫中獲取此模型中的數據,而不是來自「新」實例構造函數?
雖然使用這種方法試圖從DBContext中獲取數據。並得到了一些問題)我無法理解何時(或如何)創建我的DBContext ...或如何訪問由應用程序創建的一個...
試圖在Controller中強制創建它,
using (var Db = new thetaskermvc.Models.TaskerDBContext())
{
var themodel = new thetaskermvc.Models.TotalView();
//Jobbers
themodel.Jobberz = new Dictionary<int, thetaskermvc.Models.Jobbers>();
var jobbers = from Jobbers in Db.Jobbers.OrderBy(g => g.jobb_name) select Jobbers;
foreach (Models.Jobbers ad in jobbers)
{
themodel.Jobberz.Add(ad.jobb_id,
new Models.Jobbers(ad.jobb_id, ad.jobb_name, ad.jobb_from, ad.jobb_carma, ad.jobb_status, ad.jobb_balance, ad.jobb_time));
}
if (themodel.Jobberz.Count == 0)
{
themodel.Jobberz.Add(-1, new Models.Jobbers(0, "NOTHING FOUND",DateTime.Now,0,"",0,0));
}
}
但作爲創建方式背景信息停止它的存在,從控制器將數據傳遞路程後(?) - 我不能用任何其他方法,但得到這個控制器內部的所有數據,並通過填寫模型數據直接添加到集合中(儘管使用IENumerable會根據需要提取數據,就我所知而言)。
所以..如果不是很難,請啓發我 - 可以使用這種方法,還是有其他「常用」方式?旁邊因爲...它的笨拙 - 這個方法效果...
PS我是很新的天冬氨酸,可是...
完美解答我的問題!我可以看到究竟要做什麼以及如何:) 非常感謝。 – 2012-03-21 14:14:42
只是不要忘記標記我的答案:) – 2012-03-22 08:10:59
很好的答案。我想補充一點,如果您使用的是已導入的數據實體,那麼您可以通過將Linq查詢直接用於控制器創建模型的過程中一起跳過版本庫,[以下是一個示例我在說。](http://pastebin.com/vhgiNzyy) – 2012-07-27 20:04:09