设置Database.SetInitializer的约定<>在实体框架代码优先

时间:2016-12-21 16:02:00

标签: entity-framework entity-framework-6

我正在尝试开发我的第一个实体框架代码优先方法。关于Database.SetInitializer<> -

,我有点困惑
  1. 我可以设置多个初始值设定项吗?即。

    Database.SetInitializer<Context>(new  CreateDatabaseIfNotExists<Context>());
    
    Database.SetInitializer<Context>(new DropCreateDatabaseIfModelChanges<Context>());
    
  2. 如果我只使用CreateDatabaseIfNotExists初始化程序,后来我在连接字符串中更改数据库服务器,那么数据库是否会在新服务器上创建?

1 个答案:

答案 0 :(得分:0)

不,你不能设置多个初始化程序。初始化程序仅在数据库创建后在数据库中插入一次数据,并且只有在您第一次访问任何表的任何记录时才会运行数据库创建脚本(内部)。

在创建数据库EF之前总是先检查,连接字符串中指定的数据库是否存在于数据库服务器中。如果没有数据库那么它将创建。