EntityFrameworkQueryableExtensions.Include 方法

定义

重载

Include<TEntity,TProperty>(IQueryable<TEntity>, Expression<Func<TEntity,TProperty>>)

指定要包含在查询结果中的相关实体。 要包含的导航属性从 () 查询 TEntity 实体的类型开始指定。 如果希望基于所包含类型的导航属性包含其他类型,请在此调用后链接对 的 ThenInclude<TEntity,TPreviousProperty,TProperty>(IIncludableQueryable<TEntity, IEnumerable<TPreviousProperty>>, Expression<Func<TPreviousProperty, TProperty>>) 调用。

Include<TEntity>(IQueryable<TEntity>, String)

指定要包含在查询结果中的相关实体。 要包含的导航属性从 () 查询 TEntity 实体的类型开始指定。 可以追加要包含的更多导航属性,并用“.”字符分隔。

Include<TEntity,TProperty>(IQueryable<TEntity>, Expression<Func<TEntity,TProperty>>)

指定要包含在查询结果中的相关实体。 要包含的导航属性从 () 查询 TEntity 实体的类型开始指定。 如果希望基于所包含类型的导航属性包含其他类型,请在此调用后链接对 的 ThenInclude<TEntity,TPreviousProperty,TProperty>(IIncludableQueryable<TEntity, IEnumerable<TPreviousProperty>>, Expression<Func<TPreviousProperty, TProperty>>) 调用。

public static Microsoft.EntityFrameworkCore.Query.IIncludableQueryable<TEntity,TProperty> Include<TEntity,TProperty> (this System.Linq.IQueryable<TEntity> source, System.Linq.Expressions.Expression<Func<TEntity,TProperty>> navigationPropertyPath) where TEntity : class;
static member Include : System.Linq.IQueryable<'Entity (requires 'Entity : null)> * System.Linq.Expressions.Expression<Func<'Entity, 'Property>> -> Microsoft.EntityFrameworkCore.Query.IIncludableQueryable<'Entity, 'Property (requires 'Entity : null)> (requires 'Entity : null)
<Extension()>
Public Function Include(Of TEntity As Class, TProperty As Class) (source As IQueryable(Of TEntity), navigationPropertyPath As Expression(Of Func(Of TEntity, TProperty))) As IIncludableQueryable(Of TEntity, TProperty)

类型参数

TEntity

正在查询的实体的类型。

TProperty

要包含的相关实体的类型。

参数

source
IQueryable<TEntity>

源查询。

navigationPropertyPath
Expression<Func<TEntity,TProperty>>

表示要包含在) (t => t.Property1 导航属性的 lambda 表达式。

返回

包含相关数据的新查询。

例外

sourcenavigationPropertyPathnull

示例

以下查询显示包括单个级别的相关实体:

context.Blogs.Include(blog => blog.Posts)

以下查询显示在同一分支上包括两个级别的实体:

context.Blogs
   .Include(blog => blog.Posts).ThenInclude(post => post.Tags)

以下查询显示包含相关数据的多个级别和分支:

context.Blogs
   .Include(blog => blog.Posts).ThenInclude(post => post.Tags).ThenInclude(tag => tag.TagInfo)
   .Include(blog => blog.Contributors)

以下查询显示使用强制转换在派生类型上包括单个级别的相关实体:

context.Blogs.Include(blog => ((SpecialBlog)blog).SpecialPosts)

以下查询显示使用“as”运算符在派生类型上包括单个级别的相关实体:

context.Blogs.Include(blog => (blog as SpecialBlog).SpecialPosts)

注解

有关详细信息和示例,请参阅 加载相关实体

适用于

Include<TEntity>(IQueryable<TEntity>, String)

指定要包含在查询结果中的相关实体。 要包含的导航属性从 () 查询 TEntity 实体的类型开始指定。 可以追加要包含的更多导航属性,并用“.”字符分隔。

public static System.Linq.IQueryable<TEntity> Include<TEntity> (this System.Linq.IQueryable<TEntity> source, string navigationPropertyPath) where TEntity : class;
static member Include : System.Linq.IQueryable<'Entity (requires 'Entity : null)> * string -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
<Extension()>
Public Function Include(Of TEntity As Class) (source As IQueryable(Of TEntity), navigationPropertyPath As String) As IQueryable(Of TEntity)

类型参数

TEntity

正在查询的实体的类型。

参数

source
IQueryable<TEntity>

源查询。

navigationPropertyPath
String

要包括的“.”分隔导航属性名称的字符串。

返回

IQueryable<TEntity>

包含相关数据的新查询。

例外

sourcenavigationPropertyPathnull

navigationPropertyPath 为空或空格。

示例

以下查询显示包括单个级别的相关实体:

context.Blogs.Include("Posts")

以下查询显示在同一分支上包括两个级别的实体:

context.Blogs.Include("Posts.Tags")

以下查询显示包含相关数据的多个级别和分支:

context.Blogs
   .Include("Posts.Tags.TagInfo')
   .Include("Contributors")

注解

有关详细信息和示例,请参阅 加载相关实体

适用于