ModelBuilder 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供一个简单的 API 图面,用于配置 定义 IMutableModel 实体的形状、实体之间的关系以及它们映射到数据库的方式。
public class ModelBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder>
public class ModelBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionModelBuilder>
type ModelBuilder = class
interface IInfrastructure<InternalModelBuilder>
type ModelBuilder = class
interface IInfrastructure<IConventionModelBuilder>
Public Class ModelBuilder
Implements IInfrastructure(Of InternalModelBuilder)
Public Class ModelBuilder
Implements IInfrastructure(Of IConventionModelBuilder)
- 继承
-
ModelBuilder
- 实现
-
IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder> IInfrastructure<IConventionModelBuilder>
注解
可以使用 ModelBuilder 通过重写 OnModelCreating(ModelBuilder) 派生上下文来为上下文构造模型。 或者,可以在外部创建模型,并在传递给上下文构造函数的实例上 DbContextOptions 设置它。
有关详细信息和示例,请参阅 在 EF Core 中为实体类型和关系建模 。
构造函数
ModelBuilder() |
初始化没有约定的 ModelBuilder 类的新实例。 警告:生成正确的模型需要约定。 |
ModelBuilder(ConventionSet) |
初始化将应用一组约定的 类的新实例 ModelBuilder 。 |
ModelBuilder(ConventionSet, ModelDependencies) |
初始化将应用一组约定的 类的新实例 ModelBuilder 。 |
ModelBuilder(ConventionSet, ModelDependencies, ModelConfiguration) |
这是一个支持 Entity Framework Core 基础结构的内部 API,不受与公共 API 相同的兼容性标准的约束。 可能会在任何版本中更改或删除它,而无需通知。 仅应在代码中非常谨慎地直接使用它,并且知道在更新到新的 Entity Framework Core 版本时这样做可能会导致应用程序失败。 |
ModelBuilder(IMutableModel) |
已过时.
这是一个支持 Entity Framework Core 基础结构的内部 API,不受与公共 API 相同的兼容性标准的约束。 可能会在任何版本中更改或删除它,而无需通知。 仅应在代码中非常谨慎地直接使用它,并且知道在更新到新的 Entity Framework Core 版本时这样做可能会导致应用程序失败。 |
属性
Model |
正在配置的模型。 |
方法
ApplyConfiguration<TEntity>(IEntityTypeConfiguration<TEntity>) |
应用实例中 IEntityTypeConfiguration<TEntity> 定义的配置。 |
ApplyConfiguration<TQuery>(IQueryTypeConfiguration<TQuery>) |
已过时.
应用实例中 IQueryTypeConfiguration<TQuery> 定义的配置。 |
ApplyConfigurationsFromAssembly(Assembly, Func<Type,Boolean>) |
从提供程序集中定义的所有 IEntityTypeConfiguration<TEntity> 实例应用配置。 |
Entity(String) |
返回可用于在模型中配置给定实体类型的 对象。 如果具有所提供的名称的实体类型不是模型的一部分,则会将没有相应 CLR 类型的新实体类型添加到模型中。 |
Entity(String, Action<EntityTypeBuilder>) |
在模型中执行给定实体类型的配置。 如果具有所提供的名称的实体类型不是模型的一部分,则会将没有相应 CLR 类型的新实体类型添加到模型中。 |
Entity(Type) |
返回可用于在模型中配置给定实体类型的 对象。 如果实体类型还不是模型的一部分,则会将其添加到模型中。 |
Entity(Type, Action<EntityTypeBuilder>) |
在模型中执行给定实体类型的配置。 如果实体类型还不是模型的一部分,则会将其添加到模型中。 |
Entity<TEntity>() |
返回可用于在模型中配置给定实体类型的 对象。 如果实体类型还不是模型的一部分,则会将其添加到模型中。 |
Entity<TEntity>(Action<EntityTypeBuilder<TEntity>>) |
在模型中执行给定实体类型的配置。 如果实体类型还不是模型的一部分,则会将其添加到模型中。 |
FinalizeModel() |
强制对模型进行后期处理,使其可供运行时使用。 使用 OnModelCreating(ModelBuilder)时,此后处理会自动发生;此方法允许在无法自动执行的情况下显式运行它。 |
HasAnnotation(String, Object) |
在模型上添加或更新批注。 如果已存在具有中 |
HasChangeTrackingStrategy(ChangeTrackingStrategy) |
配置要用于此模型的默认值 ChangeTrackingStrategy 。 此策略指示上下文如何检测实体类型实例的属性更改。 |
HasChangeTrackingStrategy(ChangeTrackingStrategy) |
配置要用于此模型的默认值 ChangeTrackingStrategy 。 此策略指示上下文如何检测实体类型实例的属性更改。 |
Ignore(String) |
从模型中排除具有给定名称的实体类型。 此方法通常用于从按约定添加的模型中删除类型。 |
Ignore(Type) |
从模型中排除具有给定 CLR 类型的实体类型。 此方法通常用于从按约定添加的模型中删除类型。 |
Ignore<TEntity>() |
从模型中排除给定的实体类型。 此方法通常用于从按约定添加的模型中删除类型。 |
Owned(Type) |
将实体类型标记为“拥有”。 对此类型的所有引用都将配置为单独的拥有类型实例。 |
Owned<T>() |
将实体类型标记为“拥有”。 对此类型的所有引用都将配置为单独的拥有类型实例。 |
Query(Type) |
已过时.
返回一个 对象,该对象可用于在模型中配置给定的查询类型。 如果查询类型还不是模型的一部分,则会将其添加到模型中。 |
Query(Type, Action<EntityTypeBuilder>) |
已过时.
在模型中执行给定查询类型的配置。 如果查询类型还不是模型的一部分,则会将其添加到模型中。 此重载允许在方法调用中以内联方式完成查询类型的配置,而不是在调用 Query<TQuery>()后链接。 这允许在配置查询类型后链接模型级别的其他配置。 |
Query(Type, Action<QueryTypeBuilder>) |
在模型中执行给定查询类型的配置。 如果查询类型还不是模型的一部分,则会将其添加到模型中。 此重载允许在方法调用中以内联方式完成查询类型的配置,而不是在调用 Query<TQuery>()后链接。 这允许在配置查询类型后链接模型级别的其他配置。 |
Query<TQuery>() |
已过时.
返回一个 对象,该对象可用于在模型中配置给定的查询类型。 如果查询类型还不是模型的一部分,则会将其添加到模型中。 |
Query<TQuery>(Action<QueryTypeBuilder<TQuery>>) |
已过时.
在模型中执行给定查询类型的配置。 如果查询类型还不是模型的一部分,则会将其添加到模型中。 此重载允许在方法调用中以内联方式完成查询类型的配置,而不是在调用 Query<TQuery>()后链接。 这允许在配置查询类型后链接模型级别的其他配置。 |
SharedTypeEntity(String, Type) |
返回一个 对象,该对象可用于在模型中配置给定的共享类型实体类型。 |
SharedTypeEntity(String, Type, Action<EntityTypeBuilder>) |
返回一个 对象,该对象可用于在模型中配置给定的共享类型实体类型。 |
SharedTypeEntity<TEntity>(String) |
返回一个 对象,该对象可用于在模型中配置给定的共享类型实体类型。 |
SharedTypeEntity<TEntity>(String, Action<EntityTypeBuilder<TEntity>>) |
返回一个 对象,该对象可用于在模型中配置给定的共享类型实体类型。 |
UsePropertyAccessMode(PropertyAccessMode) |
PropertyAccessMode设置要用于此实体类型的所有属性的 。 默认情况下,当构造新对象时(通常从数据库查询实体时),将使用后备字段(如果按约定找到或已指定)。 属性用于所有其他访问。 调用此方法会更改模型中所有属性的行为,如枚举中所述 PropertyAccessMode 。 |
UsePropertyAccessMode(PropertyAccessMode) |
PropertyAccessMode设置要用于此实体类型的所有属性的 。 |
显式接口实现
IInfrastructure<IConventionModelBuilder>.Instance |
用于配置此模型的内部 ModelBuilder 。 |
IInfrastructure<InternalModelBuilder>.Instance |
用于配置此模型的内部 ModelBuilder 。 此属性供扩展方法用来配置模型。 它不用于应用程序代码。 |