2012-01-24 49 views
1

我想從數據庫中獲取信息,將其轉換爲列表並返回CustomerList。這第一位代碼工作正常。第二個例子是我試圖完成同樣的事情,除了字段來自我的數據庫。我在做什麼,怎麼做才能做到這一點?第二段代碼在我的項目中的其他地方工作,但不在這裏。請幫我從我的方法返回一個列表

private SchoolIn.Models.CustomerList CreateCustomerList() 
{ 
    return new SchoolIn.Models.CustomerList() 
    { 
     new SchoolIn.Models.Customer { Id = 1, Name  = "Patrick", Address = "Geuzenstraat 29", Place = "Amsterdam" }, 
     new SchoolIn.Models.Customer{ Id = 2, Name = "Fred", Address = "Flink 9a", Place = "Rotterdam" }, 
     new SchoolIn.Models.Customer { Id = 3, Name = "Sjonnie", Address = "Paternatenplaats 44", Place = "Enkhuizen" }, 
     new SchoolIn.Models.Customer { Id = 4, Name = "Henk", Address = "Wakerdijk 74", Place = "Utrecht" }, 
     new SchoolIn.Models.Customer { Id = 5, Name = "Klaas", Address = "Paternatenplaats 44", Place = "Plaantan" } 
    }; 
} 

private SchoolIn.Models.CustomerList CreateCustomerList() 
{ 
    return new SchoolIn.Models.CustomerList() 
    { 
     SchoolInDB db = new SchoolIn.Models.SchoolInDB(); 
     var courseprogresses = db.CourseProgresses.Include(c => c.Course).Include(c => c.Teacher); 
     return View(courseprogresses.ToList()); 
    }; 
} 
+0

Leuk dat mijn stadje op SO staat! #enkhuizen – moffeltje

回答

1

第一件事第一件第二件代碼無效C#。所以我想這不是事件編譯。你不能在對象初始化語法中使用這樣的表達式。在進入ASP.NET MVC之前請學習C#。

另一個問題是你的方法是私人的,你試圖返回視圖這是你在控制器操作中做的事情。 view方法返回一個ActionResult,而你的方法返回類型是SchoolIn.Models.CustomerList,這又一次是錯誤的。

所以移動到這一些控制器動作,你會實例化你的數據庫訪問上下文然後執行查詢和模型返回到相應的視圖顯示:

public class HomeController: Controller 
{ 
    ... 

    public ActionResult CreateCustomerList() 
    { 
     SchoolInDB db = new SchoolIn.Models.SchoolInDB(); 
     var courseprogresses = db 
      .CourseProgresses 
      .Include(c => c.Course) 
      .Include(c => c.Teacher) 
      .ToList(); 
     return View(courseprogresses); 
    } 
} 

,如果你想保持這個成一個單獨的方法:

private List<SchoolIn.Models.CourseProgress> CreateCustomerList() 
{ 
    SchoolInDB db = new SchoolIn.Models.SchoolInDB(); 
    return db 
     .CourseProgresses 
     .Include(c => c.Course) 
     .Include(c => c.Teacher) 
     .ToList(); 
} 
+0

該代碼似乎工作,但我現在得到一個錯誤消息:私人清單 CreateCustomerList() { SchoolInDB db = new SchoolInDB(); { 返回分貝 .CourseProgresses .INCLUDE(C => c.Course) .INCLUDE(C => c.Teacher) .ToList(); } – CloudyKooper

+0

謝謝你的工作 – CloudyKooper

+0

@CloudyKooper,如果這篇文章幫助你解決了問題,你應該考慮將它標記爲答案:http://meta.stackexchange.com/questions/5234/how-does-accepting點擊旁邊的勾號即可開始工作。 –

1

在你的第一個功能,你正在返回實際列表,而在第二個函數不必返回列表,而不是你已經回到與模型作爲一個列表視圖。因此,你需要返回查看結果即。的ActionResult。

希望它有幫助

+0

現在收到轉換錯誤訊息。以下是錯誤消息: 不能隱式地將類型'System.Collections.Generic.List '轉換爲'System.Collections.Generic.List '\t 下面是代碼除ToList()之外的作品。 私人列表 CreateCustomerList() { SchoolInDB db = new SchoolInDB(); 返回分貝 .CourseProgresses .INCLUDE(C => c.Course) .INCLUDE(C => c.Teacher) .ToList(); } – CloudyKooper

+1

檢查您的返回類型,它是課程進度類型列表和您的方法ID列表的返回類型CustomerList類型這兩個都應該是相同的.. –

相關問題