QueryableExtensions.Include<T, TProperty>, méthode (IQueryable<T>, Expression<Func<T, TProperty>>)
[Cette page concerne Entity Framework version 6. La dernière version est disponible sous le nom de package 'Entity Framework' NuGet. Pour plus d'informations sur Entity Framework, consultez msdn.com/data/ef.]
Spécifie les objets connexes à inclure dans les résultats de la requête.
Espace de noms : System.Data.Entity
Assembly : EntityFramework (dans EntityFramework.dll)
Syntaxe
'Déclaration
<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)
'Utilisation
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.
Paramètres de type
- T
Type de l'entité interrogée.
- TProperty
Type de la propriété de navigation incluse.
Paramètres
- source
Type : System.Linq.IQueryable<T>
IQueryable source sur lequel appeler Include.
- path
Type : System.Linq.Expressions.Expression<Func<T, TProperty>>
Expression lambda qui représente le chemin d'accès à inclure.
Valeur de retour
Type : System.Linq.IQueryable<T>
Nouvel objet IQueryable<T> avec le chemin d'accès de requête défini.
Remarque sur l'utilisation
En Visual Basic et C#, vous pouvez appeler cette méthode comme une méthode d'instance sur n'importe quel objet de type IQueryable<T>. Lorsque vous utilisez la syntaxe des méthodes d'instance pour appeler cette méthode, omettez le premier paramètre. Pour plus d'informations, consultez https://msdn.microsoft.com/fr-fr/library/bb384936(v=vs.113) ou https://msdn.microsoft.com/fr-fr/library/bb383977(v=vs.113).
Notes
L'expression de chemin d'accès doit être composée d'expressions d'accès à la propriété simples et d'appels à Select pour composer des inclusions supplémentaires après avoir inclus une propriété de collection. Les exemples de chemins d'accès Include possibles sont : Pour inclure une seule référence : query.Include(e =&gt; e.Level1Reference) Pour inclure une seule collection : query.Include(e =&gt; e.Level1Collection) Pour inclure une référence, puis une référence un niveau plus bas : query.Include(e =&gt; e.Level1Reference.Level2Reference) Pour inclure une référence, puis une collection un niveau plus bas : query.Include(e =&gt; e.Level1Reference.Level2Collection) Pour inclure une collection, puis une référence un niveau plus bas : query.Include(e =&gt; e.Level1Collection.Select(l1 =&gt; l1.Level2Reference)) Pour inclure une collection, puis une collection un niveau plus bas : query.Include(e =&gt; e.Level1Collection.Select(l1 =&gt; l1.Level2Collection)) Pour inclure une collection, puis une référence un niveau plus bas : query.Include(e =&gt; e.Level1Collection.Select(l1 =&gt; l1.Level2Reference)) Pour inclure une collection, puis une collection un niveau plus bas : query.Include(e =&gt; e.Level1Collection.Select(l1 =&gt; l1.Level2Collection)) Pour inclure une collection, une référence et une référence deux niveaux plus bas : query.Include(e =&gt; e.Level1Collection.Select(l1 =&gt; l1.Level2Reference.Level3Reference)) Pour inclure une collection, une collection et une référence deux niveaux plus bas : query.Include(e =&gt; e.Level1Collection.Select(l1 =&gt; l1.Level2Collection.Select(l2 =&gt; l2.Level3Reference))) Cette méthode d'extension appelle la méthode Include(String) de l'objet IQueryable source, si une telle méthode existe. Si l'objet IQueryable source n'a pas de méthode correspondante, cette méthode n'exécute aucune action. Les types Entity Framework ObjectQuery, ObjectSet, DbQuery et DbSet comportent tous une méthode Include appropriée à appeler. Lorsque vous appelez la méthode Include, le chemin d'accès de la requête est valide uniquement sur l'instance retournée de IQueryable&lt;T&gt;. Les autres instances de IQueryable&lt;T&gt; et le contexte d'objet lui-même ne sont pas affectés. Étant donné que la méthode Include retourne l'objet de requête, vous pouvez appeler cette méthode à plusieurs reprises sur un IQueryable&lt;T&gt afin de spécifier plusieurs chemins d'accès pour la requête.