Condividi tramite


Metodo QueryableExtensions.Include<T, TProperty> (IQueryable<T>, Expression<Func<T, TProperty>>)

[Questa pagina è specifica della versione 6 di Entity Framework. La versione più recente è disponibile come pacchetto NuGet per "Entity Framework". Per ulteriori informazioni su Entity Framework, vedere la pagina msdn.com/data/ef.]

Specifica gli oggetti correlati da includere nei risultati della query.

Spazio dei nomi:  System.Data.Entity
Assembly:  EntityFramework (in EntityFramework.dll)

Sintassi

'Dichiarazione
<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)
'Utilizzo
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.

Parametri di tipo

  • T
    Tipo di entità per la quale viene eseguita una query.
  • TProperty
    Tipo di proprietà di navigazione da includere.

Parametri

Valore restituito

Tipo: System.Linq.IQueryable<T>
Nuovo oggetto IQueryable&lt;T&gt; con il percorso della query definito.

Nota sull'utilizzo

In Visual Basic e C# è possibile chiamare questo metodo come metodo di istanza su qualsiasi oggetto di tipo IQueryable<T>. Per chiamare il metodo usando la sintassi del metodo di istanza, omettere il primo parametro. Per altre informazioni, vedere https://msdn.microsoft.com/it-it/library/bb384936(v=vs.113) o https://msdn.microsoft.com/it-it/library/bb383977(v=vs.113).

Note

L'espressione del percorso deve essere costituita da semplici espressioni di accesso alla proprietà insieme alle chiamate a Select per comporre ulteriori operazioni di inclusione dopo avere incluso una proprietà di raccolta. Esempi di possibili percorsi di inclusione sono: Per includere un singolo riferimento: query.Include(e =&amp;gt; e.Level1Reference) Per includere una singola raccolta: query.Include(e =&amp;gt; e.Level1Collection) Per includere un riferimento e quindi un riferimento di un livello inferiore: query.Include(e =&amp;gt; e.Level1Reference.Level2Reference) Per includere un riferimento e quindi una raccolta di un livello inferiore: query.Include(e =&amp;gt; e.Level1Reference.Level2Collection) Per includere una raccolta e quindi un riferimento di un livello inferiore: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Reference)) Per includere una raccolta e quindi una raccolta di un livello inferiore: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Collection)) Per includere una raccolta e quindi un riferimento di un livello inferiore: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Reference)) Per includere una raccolta e quindi una raccolta di un livello inferiore: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Collection)) Per includere una raccolta, un riferimento e un riferimento di due livelli inferiori: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Reference.Level3Reference)) Per includere una raccolta, una raccolta e un riferimento di due livelli inferiori: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Collection.Select(l2 =&amp;gt; l2.Level3Reference))) Questo metodo di estensione chiama il metodo Include(String) dell'oggetto IQueryable di origine, se il metodo esiste. Se l'oggetto IQueryable di origine non dispone di un metodo corrispondente, questo metodo non esegue alcuna operazione. I tipi ObjectQuery, ObjectSet, DbQuery e DbSet di Entity Framework dispongono tutti di un metodo Include appropriato da chiamare. Quando si chiama il metodo Include, il percorso della query è valido solo nell'istanza restituita dell'oggetto IQueryable&amp;lt;T&amp;gt;. Le altre istanze di IQueryable&amp;lt;T&amp;gt; e il contesto dell'oggetto stesso non sono interessati. Poiché tramite il metodo Include viene restituito l'oggetto query, è possibile chiamare questo metodo più volte su un oggetto IQueryable&amp;lt;T&amp;gt; per specificare più percorsi per la query.

Vedere anche

Riferimento

QueryableExtensions Classe

Overload Include

Spazio dei nomi System.Data.Entity