DataLoadOptions Klasa

Definicja

Zapewnia natychmiastowe ładowanie i filtrowanie powiązanych danych.

public ref class DataLoadOptions sealed
public sealed class DataLoadOptions
type DataLoadOptions = class
Public NotInheritable Class DataLoadOptions
Dziedziczenie
DataLoadOptions

Przykłady

Po pobraniu Customers z przykładowej bazy danych Northwind można użyć DataLoadOptions polecenia , aby określić, że Orders ma być również pobierana. Można nawet określić podzbiór Orders do pobrania.

Uwagi

Klasa DataLoadOptions zapewnia natychmiastowe ładowanie i filtrowanie powiązanych danych.

Podczas wykonywania zapytania o obiekt faktycznie pobierasz tylko żądany obiekt. Powiązane obiekty nie są pobierane automatycznie w tym samym czasie. Aby uzyskać więcej informacji, zobacz Querying Across Relationships (Wykonywanie zapytań między relacjami).

Klasa DataLoadOptions udostępnia dwie metody umożliwiające natychmiastowe ładowanie określonych powiązanych danych. Metoda LoadWith umożliwia natychmiastowe ładowanie danych związanych z głównym celem. Metoda AssociateWith umożliwia filtrowanie powiązanych obiektów.

Reguły

Rozważ następujące reguły dotyczące DataLoadOptions użycia:

Obsługa cykli

LoadWith dyrektywy i AssociateWith nie mogą tworzyć cykli. Poniżej przedstawiono przykłady takich wykresów:

  • Przykład 1. Rekursywna

    • dlo.LoadWith<Employee>(e => e.Reports);
  • Przykład 2. Wskaźniki wsteczne

    • dlo.LoadWith <Customer>(c => C.Orders);
    • dlo.LoadWith <Order>(o => o.Customer);
  • Przykład 3. Dłuższe cykle

    Chociaż nie powinno się to zdarzyć w dobrze znormalizowanym modelu, możliwe jest.

    • dlo.LoadWith <A>(a => a.Bs);
    • dlo.LoadWith <B>(b => b.Cs);
    • dlo.LoadWith <C>(c => c.As);
  • Przykład 4. Rekursywne podzapytania

    • dlo.AssociateWith<A>(a=>a.As.Where(a=>a.Id=33));
  • Przykład 5. Dłuższe cyklicznego podzapytania

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

Następujące reguły ogólne pomagają zrozumieć, co ma miejsce w tych scenariuszach:

  • LoadWith: Każde wywołanie sprawdza LoadWith , czy cykle zostały wprowadzone do grafu. Jeśli istnieją, podobnie jak w przykładach 1, 2 i 3, zgłaszany jest wyjątek.

  • AssociateWith: W czasie wykonywania aparat nie stosuje istniejących klauzul SubQuery do relacji wewnątrz wyrażenia.

    • W przykładzie 4 klauzula Where jest wykonywana względem wszystkich Aelementów , a nie tylko tych, które są filtrowane przez samo wyrażenie SubQuery (ponieważ byłoby to rekursywne).
    • W przykładzie 5 pierwsza Where klauzula jest stosowana do wszystkich Bs, mimo że istnieją podzapytania w pliku B. Druga Where klauzula jest stosowana do wszystkich As, mimo że istnieją podzapytania na .A

Konstruktory

Nazwa Opis
DataLoadOptions()

Inicjuje nowe wystąpienie klasy DataLoadOptions.

Metody

Nazwa Opis
AssociateWith(LambdaExpression)

Filtruje obiekty pobrane dla określonej relacji.

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

Filtruje obiekty pobrane dla określonej relacji.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
LoadWith(LambdaExpression)

Pobiera określone dane powiązane z głównym obiektem docelowym przy użyciu wyrażenia lambda.

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

Określa, które obiekty podrzędne mają być pobierane po przesłaniu zapytania dla obiektu typu T.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy