DataLoadOptions 클래스

정의

관련 데이터의 즉시 로드 및 필터링을 제공합니다.

public ref class DataLoadOptions sealed
public sealed class DataLoadOptions
type DataLoadOptions = class
Public NotInheritable Class DataLoadOptions
상속
DataLoadOptions

예제

Northwind 샘플 데이터베이스에서 검색 Customers 할 때 검색할 데이터베이스도 지정 Orders 하는 데 사용할 DataLoadOptions 수 있습니다. 검색할 하위 집합 Orders 을 지정할 수도 있습니다.

설명

클래스는 DataLoadOptions 관련 데이터의 즉시 로드 및 필터링을 제공합니다.

개체를 쿼리할 때 실제로 요청한 개체만 검색합니다. 관련 개체는 동시에 자동으로 페치되지 않습니다. 자세한 내용은 관계 간 쿼리를 참조하세요.

이 클래스는 DataLoadOptions 지정된 관련 데이터를 즉시 로드하는 두 가지 메서드를 제공합니다. 이 LoadWith 메서드를 사용하면 주 대상과 관련된 데이터를 즉시 로드할 수 있습니다. 이 AssociateWith 메서드를 사용하면 관련 개체를 필터링할 수 있습니다.

규칙

사용과 관련하여 다음 규칙을 고려합니다.DataLoadOptions

주기 처리

LoadWithAssociateWith 지시문은 주기를 만들면 안 됩니다. 다음은 이러한 그래프의 예를 나타냅니다.

  • 예제 1: 자체 재귀

    • dlo.LoadWith<Employee>(e => e.Reports);
  • 예제 2: 뒤로 포인터

    • dlo.LoadWith <Customer>(c => C.Orders);
    • dlo.LoadWith <Order>(o => o.Customer);
  • 예제 3: 긴 주기

    정규화된 모델에서는 이 문제가 발생하지 않지만 가능합니다.

    • dlo.LoadWith <A>(a => a.Bs);
    • dlo.LoadWith <B>(b => b.Cs);
    • dlo.LoadWith <C>(c => c.As);
  • 예제 4: 자체 재귀 하위 쿼리

    • dlo.AssociateWith<A>(a=>a.As.Where(a=>a.Id=33));
  • 예제 5: 더 긴 재귀 하위 쿼리

    • dlo.AssociateWith<A>(a=>a.Bs.Where(b=>b.Id==3));
    • dlo.AssociateWith<B>(b=>b.As.Where(a=>a.Id==3));

다음 일반 규칙은 이러한 시나리오에서 발생하는 작업을 이해하는 데 도움이 됩니다.

  • LoadWith: 각 호출은 LoadWith 주기가 그래프에 도입되었는지 여부를 확인합니다. 예제 1, 2 및 3과 같이 예외가 throw됩니다.

  • AssociateWith: 런타임 시 엔진은 식 내의 관계에 기존 SubQuery 절을 적용하지 않습니다.

    • 예제 4 Where 에서 절은 SubQuery 식 자체에 의해 하위 필터링된 절뿐만 아니라 모든 A항목에 대해 실행됩니다(재귀적이기 때문).
    • 예제 5에서는 하위 쿼리가 있더라도 첫 번째 Where 절이 모든 Bs에 B적용됩니다. 두 번째 Where 절은 하위 쿼리가 A있더라도 모든 s에 A적용됩니다.

생성자

Name Description
DataLoadOptions()

DataLoadOptions 클래스의 새 인스턴스를 초기화합니다.

메서드

Name Description
AssociateWith(LambdaExpression)

특정 관계에 대해 검색된 개체를 필터링합니다.

AssociateWith<T>(Expression<Func<T,Object>>)

특정 관계에 대해 검색된 개체를 필터링합니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 여부를 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 사용됩니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type 가져옵니다.

(다음에서 상속됨 Object)
LoadWith(LambdaExpression)

람다 식을 사용하여 주 대상과 관련된 지정된 데이터를 검색합니다.

LoadWith<T>(Expression<Func<T,Object>>)

T 형식의 개체에 대한 쿼리가 제출될 때 검색할 하위 개체를 지정합니다.

MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상