다음을 통해 공유


방법: 명시적으로 POCO 엔터티 로드(Entity Framework)

이 항목의 예제에서는 ObjectContextLoadProperty 메서드를 사용하여 관련 개체를 명시적으로 로드하는 방법을 보여 줍니다. 지연 로드를 사용하여 관련 개체에 액세스하는 예제를 보려면 방법: 지연 로드를 사용하여 관련 개체 로드(Entity Framework)를 참조하십시오. LoadProperty 메서드는 POCO 엔터티 및 EntityObject에서 파생된 엔터티와 함께 사용할 수 있습니다.

이 항목의 예제에서는 방법: POCO 엔터티 정의(Entity Framework)에 정의된 POCO 데이터 클래스, 방법: 사용자 지정 개체 컨텍스트 정의(Entity Framework)에서 만들어진 AdventureWorksEntities 클래스(ObjectContext에서 파생됨) 및 방법: 사용자 지정 개체를 사용할 수 있도록 모델링 및 매핑 파일 사용자 지정(Entity Framework)에 정의된 AdventureWorks 기반 데이터 모델을 사용합니다.

예제

이 예제에서는 처음 5개 Order 개체를 반환하고 LoadProperty 메서드를 호출하여 각 Order에 대한 관련 LineItem 개체를 명시적으로 로드합니다.

Using context As New POCOAdventureWorksEntities()
    Try
        ' Disable lazy loading. 
        context.ContextOptions.LazyLoadingEnabled = False

        ' Get the first five orders. 
        For Each order As Order In context.Orders.Take(5)
            ' Because LazyLoadingEnabled is set to false, 
            ' we need to explicitly load the related line items for the order. 
            context.LoadProperty(order, "LineItems")

            Console.WriteLine(String.Format("PO Number: {0}", order.ExtendedInfo.PurchaseOrderNumber))
            Console.WriteLine(String.Format("Order Date: {0}", order.OrderDate.ToString()))
            Console.WriteLine("Order items:")
            For Each item As LineItem In order.LineItems
                Console.WriteLine(String.Format("Product: {0} " & "Quantity: {1}", item.ProductID, item.OrderQty))
            Next
        Next
    Catch ex As InvalidOperationException
        Console.WriteLine(ex.Message)
    Catch ex As Exception
        Console.WriteLine(ex.Message)
    End Try
End Using
using (POCOAdventureWorksEntities context =
        new POCOAdventureWorksEntities())
{
    try
    {
        // Disable lazy loading.
        context.ContextOptions.LazyLoadingEnabled = false;

        // Get the first five orders.
        foreach (Order order in context.Orders.Take(5))
        {
            // Because LazyLoadingEnabled is set to false,
            // we need to explicitly load the related line items for the order.
            context.LoadProperty(order, "LineItems");

            Console.WriteLine(String.Format("PO Number: {0}",
                order.ExtendedInfo.PurchaseOrderNumber));
            Console.WriteLine(String.Format("Order Date: {0}",
                order.OrderDate.ToString()));
            Console.WriteLine("Order items:");
            foreach (LineItem item in order.LineItems)
            {
                Console.WriteLine(String.Format("Product: {0} "
                    + "Quantity: {1}", item.ProductID,
                    item.OrderQty));
            }
        }
    }
    catch (InvalidOperationException ex)
    {
        Console.WriteLine(ex.Message);
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}

참고 항목

개념

관련 POCO 엔터티 로드(Entity Framework)
개체 사용자 지정(Entity Framework)
POCO 엔터티 사용(Entity Framework)