2016-06-28 86 views
1

因此,遵循这个例子(https://msdn.microsoft.com/en-us/data/jj193542),我能够手动输出实体类和DbContext类,从头开始创建一个新的数据库。代码优先 - 如何以编程方式生成DbContext和实体?

这一切都很好,但是,我需要以编程方式创建DbContext和实体(从构建的提供元数据的程序集中),而不是手动输入它们。然后,我需要在编译或运行时在SQL中动态创建数据库,而不是以编程方式添加记录(如上面链接中的示例所示)。

这是可能的Code-First方法吗?

+0

因此,使用t4模板我能够包含我的程序集并生成DbContext和Entity类。问题是我仍然需要以编程方式打开DbContext,创建一个新的空实体并添加它,然后调用db.SaveChanges()以便在SQL中创建数据库和表!必须有另一种方法来创建数据库!任何人? – jjf1978

+1

Database.Initialize将创建数据库。 https://msdn.microsoft.com/en-us/library/system.data.entity.database.initialize(v=vs.113).aspx –

+0

这样做,谢谢先生。 – jjf1978

回答

0

现在解决了。要生成DbContext和实体,我使用了T4模板(有关T4模板的更多信息,请参阅:https://msdn.microsoft.com/en-us/data/gg558520.aspx),然后只需调用Database.Initialize(false)强制数据库在应用程序(本例中为控制台应用程序)执行时创建。

 using (var db = new MyContext()) 
     { 
      db.Database.Initialize(false); 
     }