我需要配置由 Entity Framework Code First MigrateDatabaseToLatestVersion 类创建的数据库。
是否可以影响数据库文件参数,如大小或最大大小?我特别感兴趣的是,有没有办法添加数据库文件?
我假设我需要找到实体框架生成 CREATE DATABASE 语句的时刻并对其产生一些影响。据我了解,SqlServerMigrationSqlGenerator 类为时已晚,因为此时数据库已经存在。
我需要配置由 Entity Framework Code First MigrateDatabaseToLatestVersion 类创建的数据库。
是否可以影响数据库文件参数,如大小或最大大小?我特别感兴趣的是,有没有办法添加数据库文件?
我假设我需要找到实体框架生成 CREATE DATABASE 语句的时刻并对其产生一些影响。据我了解,SqlServerMigrationSqlGenerator 类为时已晚,因为此时数据库已经存在。
编辑:根据评论这不起作用:
您可以使用 Add-Migration
命令添加基于代码的迁移并修改其Up
方法以执行Sql("ALTER DATABASE ...")
并使用您的数据库执行您想要的任何操作。
数据库是通过DbProviderServices
- 这是 EF 和特定数据库服务器之间的桥接组件创建的。ObjectContext
公开创建数据库和生成数据库创建脚本的操作。DbMigrator
执行时使用数据库创建操作Update
。它检查数据库是否存在,如果不存在,则使用ObjectContext.CreateDatabase
. 所以如果你想改变创建数据库的过程,你需要实现你自己的迁移器实现来改变Update
方法生成数据库的方式(也许你只需要一个装饰器,它会在执行操作之前创建一个数据库DbMigrator.Update
)。