2011-03-23 102 views
3

Database.SetInitializer()的偉大工程測試,但我需要在一個文件中的SQL輸出在生產環境中工作(數據庫管理員是不會運行的程序來創建DB)。 Castle ActiveRecord通過ActiveRecordStarter.GenerateCreationScripts()使輸出文件變得容易。如果在EF中有類似的方法,我無法找到任何提及它的地方。這是可行的嗎?輸出創建SQL實體框架4.1代碼優先

回答

3

那麼你可以運行Database.SetInitializer()方法來爲您創建初始數據庫,然後,一旦你滿意的數據庫架構,然後你可能使用類似SQL Server Management Studio中生成從數據庫腳本

+1

+1我認爲這是目前版本API的唯一選擇。 – 2011-03-23 09:29:27

+0

SQL Server Management Studio做了我所需要的。非常感謝。 – mld 2011-03-27 23:57:34

9

您還可以使用的DbContext來獲得SQL DDL。

string sqlscript = (context as IObjectContextAdapter).ObjectContext.CreateDatabaseScript(); 
+0

甜美!不知道這個,字符串可以保存到一個文件中; – 2012-02-21 20:58:18

+0

我覺得我最喜歡這個答案:-) – 2012-02-29 22:49:28

+0

是的,絕對是最好的答案。 – Dan 2012-03-03 23:18:50