QueryableExtensions.Include<T, TProperty>-Methode (IQueryable<T>, Expression<Func<T, TProperty>>)
[Diese Seite bezieht sich auf Entity Framework Version 6. Die neueste Version ist als 'Entity Framework' NuGet-Paket verfügbar. Weitere Informationen zu Entity Framework finden Sie unter msdn.com/data/ef.]
Gibt die verbundenen Objekte an, die in die Abfrageergebnisse eingeschlossen werden sollen.
Namespace: System.Data.Entity
Assembly: EntityFramework (in EntityFramework.dll)
Syntax
'Declaration
<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")> _
<SuppressMessageAttribute("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")> _
<ExtensionAttribute> _
Public Shared Function Include(Of T, TProperty) ( _
source As IQueryable(Of T), _
path As Expression(Of Func(Of T, TProperty)) _
) As IQueryable(Of T)
'Usage
Dim source As IQueryable(Of T)
Dim path As Expression(Of Func(Of T, TProperty))
Dim returnValue As IQueryable(Of T)
returnValue = source.Include(path)
[SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]
[SuppressMessageAttribute("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")]
public static IQueryable<T> Include<T, TProperty>(
this IQueryable<T> source,
Expression<Func<T, TProperty>> path
)
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1006:DoNotNestGenericTypesInMemberSignatures")]
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1011:ConsiderPassingBaseTypesAsParameters")]
[ExtensionAttribute]
public:
generic<typename T, typename TProperty>
static IQueryable<T>^ Include(
IQueryable<T>^ source,
Expression<Func<T, TProperty>^>^ path
)
[<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")>]
[<SuppressMessageAttribute("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")>]
static member Include :
source:IQueryable<'T> *
path:Expression<Func<'T, 'TProperty>> -> IQueryable<'T>
JScript does not support generic types and methods.
Typparameter
- T
Der Typ der abgefragten Entität.
- TProperty
Der Typ der Navigationseigenschaft, die eingeschlossen wird.
Parameter
- source
Typ: System.Linq.IQueryable<T>
Das Quell-IQueryable, für das Include aufgerufen werden soll.
- path
Typ: System.Linq.Expressions.Expression<Func<T, TProperty>>
Ein Lambdaausdruck, der den einzuschließenden Pfad darstellt.
Rückgabewert
Typ: System.Linq.IQueryable<T>
Ein neues IQueryable<T> mit dem definierten Abfragepfad.
Hinweis zur Verwendung
In Visual Basic und C# können Sie diese Methode als Instanzenmethode für ein beliebiges Objekt vom Typ IQueryable<T> aufrufen. Bei Verwendung der Syntax für Instanzenmethoden lassen Sie den ersten Parameter aus. Weitere Informationen finden Sie unter https://msdn.microsoft.com/de-de/library/bb384936(v=vs.113) oder https://msdn.microsoft.com/de-de/library/bb383977(v=vs.113).
Hinweise
Der Pfadausdruck muss aus einfachen Eigenschaftenzugriffsausdrücken und Aufrufen von Select zusammengesetzt sein, um nach dem Einschließen einer Auflistungseigenschaft weitere Include-Anweisungen zu erstellen. Beispiele für mögliche Includepfade: Zum Einschließen eines einzelnen Verweises: query.Include(e =&gt; e.Level1Reference) Zum Einschließen einer einzelnen Auflistung: query.Include(e =&gt; e.Level1Collection) Zum Einschließen eines Verweises und dann eines Verweises auf der darunterliegenden Ebene: query.Include(e =&gt; e.Level1Reference.Level2Reference) Zum Einschließen eines Verweises und dann einer Auflistung auf der darunterliegenden Ebene: query.Include(e =&gt; e.Level1Reference.Level2Collection) Zum Einschließen einer Auflistung und dann eines Verweises auf der darunterliegenden Ebene: query.Include(e =&gt; e.Level1Collection.Select(l1 =&gt; l1.Level2Reference)) Zum Einschließen einer Auflistung und dann einer Auflistung auf der darunterliegenden Ebene: query.Include(e =&gt; e.Level1Collection.Select(l1 =&gt; l1.Level2Collection)) Zum Einschließen einer Auflistung und dann eines Verweises auf der darunterliegenden Ebene: query.Include(e =&gt; e.Level1Collection.Select(l1 =&gt; l1.Level2Reference)) Zum Einschließen einer Auflistung und dann einer Auflistung auf der darunterliegenden Ebene: query.Include(e =&gt; e.Level1Collection.Select(l1 =&gt; l1.Level2Collection)) Zum Einschließen einer Auflistung, eines Verweises und dann eines Verweises zwei Ebenen tiefer: query.Include(e =&gt; e.Level1Collection.Select(l1 =&gt; l1.Level2Reference.Level3Reference)) Zum Einschließen einer Auflistung, einer Auflistung und dann eines Verweises zwei Ebenen tiefer: query.Include(e =&gt; e.Level1Collection.Select(l1 =&gt; l1.Level2Collection.Select(l2 =&gt; l2.Level3Reference))) Diese Erweiterungsmethode ruft die Include(String)-Methode des IQueryable-Quellobjekts auf, falls diese Methode vorhanden ist. Wenn das Quell-IQueryable über keine übereinstimmende Methode verfügt, führt diese Methode keine Aktion aus. Die Typen Entity Framework ObjectQuery, ObjectSet, DbQuery und DbSet verfügen allesamt über eine entsprechende Methode. Beim Aufruf der Include-Methode ist der Abfragepfad nur für die zurückgegebene Instanz von IQueryable&lt;T&gt; gültig. Andere Instanzen von IQueryable&lt;T&gt; und der Objektkontext selbst werden nicht beeinflusst. Da die Include-Methode das Abfrageobjekt zurückgibt, kann diese Methode mehrmals für IQueryable&lt;T&gt; aufgerufen werden, um mehrere Pfade für die Abfrage anzugeben.