DataLoadOptions 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
관련 데이터의 즉시 로드 및 필터링을 제공합니다.
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
- 첫 번째 쿼리가 DataLoadOptions 실행된 후 a DataContext 에 할당하면 예외가 생성됩니다.
- DataLoadOptions 할당 DataContext 된 후 수정하면 예외가 생성됩니다.
주기 처리
LoadWith 및 AssociateWith 지시문은 주기를 만들면 안 됩니다. 다음은 이러한 그래프의 예를 나타냅니다.
예제 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적용됩니다.
- 예제 4
생성자
| 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) |