2012-05-08 18 views
0

基於MVC音樂商店示例,我試圖預先獲取專輯以及流派,但只讀取專輯中的特定數據而不是整個實體。Enity Framework查詢結果整形

這裏是EF查詢:

public ActionResult Browse(string genre) 
{ 
    // Retrieve Genre and its Associated Albums from database 
    var genreModel = storeDB.Genres.Include("Albums").Single(g => g.Name == genre); 
    return View(genreModel); 
} 

說我有一個視圖模型:

public class AlbumViewModel 
{ 
    public string Title { get; set; } 
    public decimal Price { get; set; } 
} 

我將如何改變EF LINQ查詢來獲取這兩種流派的信息,包括專輯但只能選擇查看模型中列出的數據,而不是啓用實體?

要做到視圖模型的一部分,我會做類似的信息(VB):

From a In storeDB.Albums 
Where a.Genre = genre 
Select New AlbumViewModel With { 
    .Title = a.Title, 
    .Price = a.Price, 
}) 

回答

0

這應該是它:

(from g in storeDB.Genres 
where g.Name == genre 
select new { 
    Genre = g, 
    Albums = g.Albums.Select(a => new { Title = a.Title, Price = a.Price }) 
}) 
+0

謝謝,但我想包括與專輯按照音樂商店樣品的類型。 –