语言

ModelSource 类

定义

其实现 IModelSource 基于 DbSet<TEntity> 上下文中公开的属性生成模型。 缓存模型以避免每次请求时重新创建它。

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

public abstract class ModelSource : Microsoft.EntityFrameworkCore.Infrastructure.IModelSource
[System.Runtime.CompilerServices.Nullable(0)]
public class ModelSource : Microsoft.EntityFrameworkCore.Infrastructure.IModelSource
public class ModelSource : Microsoft.EntityFrameworkCore.Infrastructure.IModelSource
type ModelSource = class
    interface IModelSource
[<System.Runtime.CompilerServices.Nullable(0)>]
type ModelSource = class
    interface IModelSource
Public MustInherit Class ModelSource
Implements IModelSource
Public Class ModelSource
Implements IModelSource
继承
ModelSource
特性
实现

注解

服务生存期为 Singleton。 这意味着多个实例使用 DbContext 单个实例。 实现必须是线程安全的。 此服务不能依赖于注册为 Scoped..

有关详细信息和示例,请参阅 数据库提供程序和扩展的实现 。

构造函数

名称 说明
ModelSource(IDbSetFinder, ICoreConventionSetBuilder, IModelCustomizer, IModelCacheKeyFactory)

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

ModelSource(ModelSourceDependencies)

创建新的 ModelSource 实例。

属性

名称 说明
CoreConventionSetBuilder

Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ICoreConventionSetBuilder获取将生成用于生成模型的约定。

Dependencies

此服务的依赖项。

ModelCacheKeyFactory

IModelCacheKeyFactory获取用于存储模型和查找模型缓存的键。

ModelCustomizer

IModelCustomizer获取除约定发现的内容外,还将执行模型的其他配置。

SetFinder

获取 Microsoft.EntityFrameworkCore.Internal.IDbSetFinder 将查找 DbSet<TEntity> 派生上下文的属性。

方法

名称 说明
CreateConventionSet(IConventionSetBuilder)

创建要用于模型的约定集。 仅使用 Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.CoreConventionSetBuilder if conventionSetBuilder 为 null。

CreateModel(DbContext, IConventionSetBuilder, IModelValidator)

创建模型。 在缓存中找不到模型时,将调用此方法。

CreateModel(DbContext, IConventionSetBuilder, IModelValidator)

创建模型。 在缓存中找不到模型时,将调用此方法。

CreateModel(DbContext, IConventionSetBuilder, ModelDependencies)

创建模型。 在缓存中找不到模型时,将调用此方法。

CreateModel(DbContext, IConventionSetBuilder)
已过时.
已过时.

创建模型。 在缓存中找不到模型时,将调用此方法。

CreateModel(DbContext, ModelCreationDependencies, Boolean)

这是一个内部 API,支持Entity Framework Core基础结构,不受与公共 API 相同的兼容性标准的约束。 可以在任何版本中更改或删除它,而不通知。 只需在代码中直接使用它,并非常谨慎地知道这样做可能会导致应用程序在更新到新的Entity Framework Core版本时失败。

FindSets(ModelBuilder, DbContext)

将上下文中的属性中找到 DbSet<TEntity> 的实体类型添加到模型。

GetModel(DbContext, IConventionSetBuilder, IModelValidator)

从缓存中返回模型,或者在缓存中不存在模型时创建模型。

GetModel(DbContext, IConventionSetBuilder, IModelValidator)

从缓存中返回模型,或者在缓存中不存在模型时创建模型。

GetModel(DbContext, IConventionSetBuilder, ModelDependencies)
已过时.

从缓存中返回模型,或者在缓存中不存在模型时创建模型。

GetModel(DbContext, IConventionSetBuilder)
已过时.
已过时.

从缓存中返回模型,或者在缓存中不存在模型时创建模型。

GetModel(DbContext, ModelCreationDependencies, Boolean)

获取要使用的模型。

适用于