0

MVC Music Store サンプルに基づいて、ジャンルと共にアルバムをプリフェッチしようとしていますが、完全なエンティティではなく、アルバムから特定のデータのみを読み取ろうとしています。

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,
})
4

1 に答える 1

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 })
})
于 2012-05-08T02:49:45.697 に答える