2011-03-23 98 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