2012-03-22 17 views
1

誰かが私のために次のコードを解読できますか?ASP.NET MVCヘルプが必要

public class StoreEditorViewModel 
{ 
    public List<Ticket> TotalView { get; set; } 

    public StoreEditorViewModel() 
    { 
     using (MvcTicketsEntities storeDB = new MvcTicketsEntities()) 
     { 
      var temp = storeDB.Tickets.Include(x => x.Genres).Include(x => x.Artists).ToList(); 
      TotalView = temp.ToList(); 
     } 
    } 
} 

私はInculde(x => x.genres)を理解できません。*ジャンルは私のデータベースの別のテーブルです。

答えて

0

Includeは、あなたが2度(TicketsとTickets Genetのために1回)呼び出すのではなく、このSQLリクエストの一部としてGenresレコードをフェッチするようにEFに指示しています。 (あなたのコードは非常に似ています) 「我々は、ジャンルのオブジェクトがあるとき、私たちは、同様にロードしたい他の関連するエンティティを示すことができますEntity Frameworkの機能を利用するだろうMVC Music Storeの例ではJon Gallowayを引用する

この機能はクエリ結果整形と呼ばれ、必要なすべての情報を取得するためにデータベースにアクセスする必要がある回数を減らすことができます。取得するジャンルのアルバムを事前に取得したいので、 Genres.Include( "Albums")を含むようにクエリを更新して、関連するアルバムも必要であることを示します。これは、単一のデータベースリクエストでGenreとAlbumの両方のデータを取得するので、効率的です。

+0

Thx、私はASP.NET MVCを初めて使っているので、最初は理解できませんでした。 – Msmit1993