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