次の方法で共有


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
    含めるナビゲーション プロパティの型。

パラメーター

戻り値

型 : System.Linq.IQueryable<T>
定義されたクエリ パスを含む新しい IQueryable&lt;T&gt;。

使用上の注意

Visual Basic および Visual C# では、このメソッドを、IQueryable<T> 型のオブジェクトのインスタンス メソッドとして呼び出すことができます。インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメーターを省略します。詳細については、「https://msdn.microsoft.com/ja-jp/library/bb384936(v=vs.113)」または「https://msdn.microsoft.com/ja-jp/library/bb383977(v=vs.113)」を参照してください。

解説

コレクション プロパティを含めた後、追加の要素を含めることができるように、単純なプロパティ アクセス式と Select への呼び出しでパス式を構成する必要があります。 考えられるインクルード パスの例を次に示します。1 つの参照を含めるには:query.Include(e =&amp;gt; e.Level1Reference) 1 つのコレクションを含めるには:query.Include(e =&amp;gt; e.Level1Collection) 1 つの参照を含め、参照レベルを 1 つ下げるには:query.Include(e =&amp;gt; e.Level1Reference.Level2Reference) 1 つの参照を含め、コレクション レベルを 1 つ下げるには:query.Include(e =&amp;gt; e.Level1Reference.Level2Collection) 1 つのコレクションを含め、参照レベルを 1 つ下げるには:query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Reference)) 1 つのコレクションを含め、コレクション レベルを 1 つ下げるには:query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Collection)) 1 つのコレクションを含め、参照レベルを 1 つ下げるには:query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Reference)) 1 つのコレクションを含め、コレクション レベルを 1 つ下げるには:query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Collection)) 1 つのコレクションを含め、1 つの参照を含めて、参照レベルを 2 つ下げるには:query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Reference.Level3Reference)) 1 つのコレクションを含め、1 つのコレクションを含めて、参照レベルを 2 つ下げるには:query.Include(e =&amp;gt; e.Level1Collection.Select(l1 =&amp;gt; l1.Level2Collection.Select(l2 =&amp;gt; l2.Level3Reference))) この拡張メソッドはソース IQueryable オブジェクトの Include(String) メソッド (存在する場合) を呼び出します。 ソース 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 名前空間