QueryableExtensions.Include<T, TProperty> (Método) (IQueryable<T>, Expression<Func<T, TProperty>>)

[Esta página es específica de la versión 6 de Entity Framework. La versión más reciente está disponible como el paquete NuGet de Entity Framework. Para más información sobre Entity Framework, consulte msdn.com/es-ES/data/ef].

Especifica los objetos relacionados que se van a incluir en los resultados de la consulta.

Espacio de nombres:  System.Data.Entity
Ensamblado:  EntityFramework (en EntityFramework.dll)

Sintaxis

'Declaración
<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)
'Uso
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.

Parámetros de tipo

  • T
    Tipo de la entidad que se va a consultar.
  • TProperty
    Tipo de la propiedad de navegación que se va a incluir.

Parámetros

Valor devuelto

Tipo: System.Linq.IQueryable<T>
Nuevo objeto IQueryable&lt;T&gt; con la ruta de la consulta definida.

Nota sobre el uso

En Visual Basic y C#, se puede llamar a este método como a un método de instancia en cualquier objeto de tipo IQueryable<T>. Cuando emplee la sintaxis del método de instancia para llamar a este método, omita el primer parámetro. Para obtener más información, vea https://msdn.microsoft.com/es-es/library/bb384936(v=vs.113) o https://msdn.microsoft.com/es-es/library/bb383977(v=vs.113).

Comentarios

La expresión de la ruta de acceso debe estar formada por expresiones de acceso de propiedad simples junto con llamadas a Select para componer inclusiones adicionales después de incluir una propiedad de colección. Ejemplos de posibles rutas de inclusión son los siguientes: Para incluir una única referencia: query.Include(e =&amp;gt; e.Level1Reference) Para incluir una única colección: query.Include(e =&amp;gt; e.Level1Collection) Para incluir una referencia y, a continuación, una referencia un nivel por debajo: query.Include(e =&amp;gt; e.Level1Reference.Level2Reference) Para incluir una referencia y, a continuación, una colección un nivel por debajo: query.Include(e =&amp;gt; e.Level1Reference.Level2Collection) Para incluir una colección y, a continuación, una referencia un nivel por debajo: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Reference)) Para incluir una colección y, a continuación, una colección un nivel por debajo: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Collection)) Para incluir una colección y, a continuación, una referencia un nivel por debajo: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Reference)) Para incluir una colección y, a continuación, una colección un nivel por debajo: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Collection)) Para incluir una colección, una referencia y una referencia dos niveles por debajo: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Reference.Level3Reference)) Para incluir una colección, una colección y una referencia dos niveles por debajo: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Collection.Select(l2 =&amp;gt; l2.Level3Reference))) Este método de extensión llama al método Include(String) del objeto IQueryable de origen, si dicho método existe. Si el objeto IQueryable de origen no tiene un método coincidente, este método no hace nada. Los tipos ObjectQuery, ObjectSet, DbQuery y DbSet de Entity Framework tienen un método Include adecuado al que llamar. Cuando se llama al método Include, la ruta de la consulta solamente es válida en la instancia devuelta de IQueryable&amp;lt;T&amp;gt;. Otras instancias de IQueryable&amp;lt;T&amp;gt; y el contexto del objeto en sí no se ven afectados. Puesto que el método Include devuelve el objeto de consulta, puede llamar varias veces a este método en un objeto IQueryable&amp;lt;T&amp;gt; para especificar varias rutas para la consulta.

Vea también

Referencia

QueryableExtensions Clase

Include (Sobrecarga)

System.Data.Entity (Espacio de nombres)