QueryTypeBuilder 类

定义

提供用于配置查询类型的简单 API。

此类的实例在使用 API 时从方法中返回, ModelBuilder 它不是在应用程序代码中直接构造的。

public class QueryTypeBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.IMutableModel>, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalEntityTypeBuilder>
type QueryTypeBuilder = class
    interface IInfrastructure<IMutableModel>
    interface IInfrastructure<InternalEntityTypeBuilder>
Public Class QueryTypeBuilder
Implements IInfrastructure(Of IMutableModel), IInfrastructure(Of InternalEntityTypeBuilder)
继承
QueryTypeBuilder
派生
实现
IInfrastructure<IMutableModel> IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalEntityTypeBuilder>

构造函数

QueryTypeBuilder(InternalEntityTypeBuilder)

此 API 支持 Entity Framework Core 基础结构,不应直接从代码使用。 将来的版本中可能会更改或删除此 API。

属性

Metadata

正在配置的查询类型。

方法

HasAnnotation(String, Object)

添加或更新查询类型的批注。 如果已存在具有中 annotation 指定键的批注,则其值将更新。

HasBaseType(String)

在继承层次结构中设置此查询类型的基类型。

HasBaseType(Type)

在继承层次结构中设置此查询类型的基类型。

HasOne(String, String)

配置一个关系,其中此查询类型具有指向关系中另一类型的单个实例的引用。

请注意,在没有参数的情况下调用此方法会将关系的此端显式配置为不使用导航属性,即使实体类型上存在此类属性也是如此。 如果要使用导航属性,则必须指定它。

调用此方法后,应链接对 或 WithOne(String)WithMany(String)调用,以完全配置关系。 如果只调用此方法而不调用链接,则不会产生有效的关系。

HasOne(Type, String)

配置一个关系,其中此查询类型具有指向关系中另一类型的单个实例的引用。

调用此方法后,应链接对 或 WithOne(String)WithMany(String)调用,以完全配置关系。 如果只调用此方法而不调用链接,则不会产生有效的关系。

HasQueryFilter(LambdaExpression)

指定将自动应用于面向此查询类型的任何查询的 LINQ 谓词表达式。

Ignore(String)

从查询类型中排除给定属性。 此方法通常用于从按约定添加的查询类型中删除属性。

Property(String)

返回一个对象,该对象可用于配置查询类型的属性。 如果不存在具有给定名称的属性,则将添加新属性。

添加具有此重载的新属性时,属性名称必须与查询类型上的 CLR 属性或字段的名称匹配。 此重载不能用于添加新的阴影状态属性。

Property(Type, String)

返回一个对象,该对象可用于配置查询类型的属性。 如果不存在具有给定名称的属性,则将添加新属性。

添加新属性时,如果查询类型类中存在同名的属性,则会将其添加到模型中。 如果查询类型类中不存在任何属性,则将添加新的阴影状态属性。 阴影状态属性是在查询类型类中没有相应属性的阴影状态属性。 属性的当前值存储在 中, ChangeTracker 而不是存储在查询类型类的实例中。

Property<TProperty>(String)

返回一个对象,该对象可用于配置查询类型的属性。 如果不存在具有给定名称的属性,则将添加新属性。

添加新属性时,如果查询类型类中存在同名的属性,则会将其添加到模型中。 如果查询类型类中不存在任何属性,则将添加新的阴影状态属性。 阴影状态属性是在查询类型类中没有相应属性的阴影状态属性。 属性的当前值存储在 中, ChangeTracker 而不是存储在查询类型类的实例中。

UsePropertyAccessMode(PropertyAccessMode)

PropertyAccessMode设置要用于此查询类型的所有属性的 。

默认情况下,当构造新对象时(通常从数据库查询实体时),将使用后备字段(如果按约定找到或已指定)。 属性用于所有其他访问。 调用此方法将更改此查询类型的所有属性的行为,如枚举中所述 PropertyAccessMode

调用此方法会覆盖此查询的所有属性,类型为模型上设置的任何访问模式。

显式接口实现

IInfrastructure<IMutableModel>.Instance

查询类型所属的模型。

IInfrastructure<InternalEntityTypeBuilder>.Instance

获取用于配置查询类型的内部生成器。

扩展方法

GetInfrastructure<T>(IInfrastructure<T>)

从使用 IInfrastructure<T>隐藏的属性获取值。

此方法通常由数据库提供程序 (和其他扩展) 使用。 它通常不用于应用程序代码。

HasDiscriminator(QueryTypeBuilder)

配置用于标识表中每行表示的查询类型的鉴别器列,当继承层次结构映射到关系数据库中的单个表时。

HasDiscriminator(QueryTypeBuilder, String, Type)

配置用于标识表中每行表示的查询类型的鉴别器列,当继承层次结构映射到关系数据库中的单个表时。

HasDiscriminator<TDiscriminator>(QueryTypeBuilder, String)

配置用于标识表中每行表示的查询类型的鉴别器列,当继承层次结构映射到关系数据库中的单个表时。

ToView(QueryTypeBuilder, String)

配置视图在面向关系数据库时映射到的视图或表。

ToView(QueryTypeBuilder, String, String)

配置视图在面向关系数据库时映射到的视图或表。

适用于