로드 메서드The Load Method

이러한 엔터티를 사용 하 여 즉시 작업을 수행 하지 않고 데이터베이스에서 컨텍스트로 엔터티를 로드 하는 몇 가지 시나리오가 있습니다.There are several scenarios where you may want to load entities from the database into the context without immediately doing anything with those entities. 이에 대 한 좋은 예는 로컬 데이터에 설명 된 대로 데이터 바인딩의 엔터티를 로드 하는 것입니다.A good example of this is loading entities for data binding as described in Local Data. 이 작업을 수행 하는 일반적인 방법은 LINQ 쿼리를 작성 한 다음 해당 쿼리에서 ToList를 호출 하 여 생성 된 목록을 즉시 삭제 하는 것입니다.One common way to do this is to write a LINQ query and then call ToList on it, only to immediately discard the created list. 로드 확장 메서드는 목록 생성을 방지 하는 것을 제외 하 고는 ToList와 동일 하 게 작동 합니다.The Load extension method works just like ToList except that it avoids the creation of the list altogether.

이 토픽에서 설명하는 방법은 Code First 및 EF 디자이너를 사용하여 만든 모델에 동일하게 적용됩니다.The techniques shown in this topic apply equally to models created with Code First and the EF Designer.

다음은 Load를 사용 하는 두 가지 예제입니다.Here are two examples of using Load. 첫 번째는 로컬 데이터의 설명에 따라 로컬 컬렉션에 바인딩하기 전에 부하를 사용 하 여 엔터티를 쿼리 하는 Windows Forms 데이터 바인딩 응용 프로그램에서 가져옵니다.The first is taken from a Windows Forms data binding application where Load is used to query for entities before binding to the local collection, as described in Local Data:

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);

    _context = new ProductContext();

    _context.Categories.Load();
    categoryBindingSource.DataSource = _context.Categories.Local.ToBindingList();
}

두 번째 예제에서는 관련 엔터티 로드에서 설명한 대로 load를 사용 하 여 관련 엔터티의 필터링 된 컬렉션을 로드 하는 방법을 보여 줍니다.The second example shows using Load to load a filtered collection of related entities, as described in Loading Related Entities:

using (var context = new BloggingContext())
{
    var blog = context.Blogs.Find(1);

    // Load the posts with the 'entity-framework' tag related to a given blog
    context.Entry(blog)
        .Collection(b => b.Posts)
        .Query()
        .Where(p => p.Tags.Contains("entity-framework"))
        .Load();
}