2016-12-21 42 views
0

我試圖開發我的第一個實體框架代碼優先方法。我有點困惑Database.SetInitializer<> -在實體框架中設置Database.SetInitializer <>的代碼優先

  1. 我可以設置多個初始化?即

    Database.SetInitializer<Context>(new CreateDatabaseIfNotExists<Context>()); 
    
    Database.SetInitializer<Context>(new DropCreateDatabaseIfModelChanges<Context>()); 
    
  2. 如果我只用CreateDatabaseIfNotExists初始化,後來我改變數據庫服務器的連接字符串,然後將數據庫中新服務器上創建的?

+0

該方法說「** Set ** Initializer」,而不是「AddInitializer」。不,你不能有多個初始化器(這意味着什麼?) – Amy

+0

http://www.entityframeworktutorial.net/code-first/database-initialization-strategy-in-code-first.aspx –

回答

0

不,您不能設置多個初始化程序。初始化程序僅在數據庫創建完成後在數據庫中插入數據一次,並且只有在第一次訪問任何表的任何記錄時纔會運行數據庫創建腳本(內部)。

並且在創建數據庫EF之前,總是首先檢查連接字符串中指定的數據庫是否存在於數據庫服務器中。如果數據庫不存在,那麼它會創建。

相關問題