Поделиться через


QueryableExtensions.Include<T, TProperty> - метод (IQueryable<T>, Expression<Func<T, TProperty>>)

[Эта страница относится к документации к Entity Framework 6. Последняя версия доступна в составе пакета Entity Framework NuGet. Дополнительные сведения об Entity Framework см. в разделе msdn.com/data/ef.]

Задает связанные объекты, включаемые в результаты запроса.

Пространство имен:  System.Data.Entity
Сборка:  EntityFramework (в EntityFramework.dll)

Синтаксис

'Декларация
<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)
'Применение
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.

Параметры типа

  • T
    Запрашиваемый тип сущности.
  • TProperty
    Тип включаемого свойства навигации.

Параметры

  • source
    Тип: System.Linq.IQueryable<T>
    Исходный интерфейс IQueryable, для которого вызывается метод Include.

Возвращаемое значение

Тип: System.Linq.IQueryable<T>
Новый интерфейс IQueryable&lt;T&gt; с указанным путем запроса.

Примечание об использовании

В Visual Basic и C# этот метод можно вызывать как метод экземпляра для любого объекта типа IQueryable<T>. При вызове метода для экземпляра следует опускать первый параметр. Дополнительные сведения см. в разделе https://msdn.microsoft.com/ru-ru/library/bb384936(v=vs.113) или https://msdn.microsoft.com/ru-ru/library/bb383977(v=vs.113).

Примечания

Выражение пути должно состоять из простых выражений доступа к свойствам и вызовов метода Select для составления дополнительных включений после включения свойства-коллекции. Далее приведены примеры возможных путей включения. Включение одиночной ссылки: query.Include(e =&amp;gt; e.Level1Reference) Включение одной коллекции: query.Include(e =&amp;gt; e.Level1Collection) Включение ссылки, а затем ссылки, расположенной на один уровень ниже: query.Include(e =&amp;gt; e.Level1Reference.Level2Reference) Включение ссылки, а затем коллекции, расположенной на один уровень ниже: query.Include(e =&amp;gt; e.Level1Reference.Level2Collection) Включение коллекции, а затем ссылки, расположенной на один уровень ниже: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Reference)) Включение коллекции, а затем коллекции, расположенной на один уровень ниже: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Collection)) Включение коллекции, а затем ссылки, расположенной на один уровень ниже: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Reference)) Включение коллекции, а затем коллекции, расположенной на один уровень ниже: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Collection)) Включение коллекции, а затем ссылки, расположенной на два уровня ниже: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Reference.Level3Reference)) Включение коллекции, а затем ссылки, расположенной на два уровня ниже: query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Collection.Select(l2 =&amp;gt; l2.Level3Reference))) Этот метод расширения вызывает метод Include(String) для исходного объекта IQueryable, если такой метод существует. Если исходный объект IQueryable не имеет соответствующего метода, то этот метод не делает ничего. Все типы Entity Framework ObjectQuery, ObjectSet, DbQuery и DbSet имеют соответствующий метод Include, который может быть вызван. При вызове метода Include путь запроса действителен только для возвращаемого экземпляра IQueryable&amp;lt;T&amp;gt;. Другие экземпляры IQueryable&amp;lt;T&amp;gt; и контекст объекта не затрагиваются. Поскольку метод Include возвращает объект запроса, этот метод можно неоднократно вызывать для IQueryable&amp;lt;T&amp;gt;, чтобы задать несколько путей запроса.

См. также

Справочник

QueryableExtensions Класс

Include - перегрузка

System.Data.Entity - пространство имен