2014-02-21 21 views
2

我有一个预先存在的数据库和实体框架6 数据库优先模型从它生成。我需要在不同的主机和/或数据库引擎上创建相同的数据库。我希望我可以使用与相同的型号,代码优先,但OnModelCreating方法生成的DbContext似乎不能用于代码优先的方法,它会抛出UnintentionalCodeFirstException。生成的模型也没有应用任何属性。如何在架构优先模型的不同主机上创建数据库?

有没有什么方法可以重用我的数据库优先模型来创建具有相同模式的数据库?或者,也许有一个明显的,更简单的方法来做到这一点,我失踪了?

+0

如果你想创建数据库,你为什么需要触摸OnModelCreating?你应该可以从设计者那里做到这一点(右键单击设计器表面并选择“从模型生成数据库”并运行脚本),或者如果你想从代码做到这一点'ctx.Database.Create()'或使用'CreateDatabaseIfNotExists'初始值设定项。 – Pawel

+0

@Pawel哦。我想这是“我想要存在的一种明显而简单的方式”。 :)感谢您指出正确的方向。您可以将其作为答案发布。 – Athari

回答

3

如果您只是想创建数据库,您不需要触摸OnModelCreating方法。你应该能够从设计者那里做到这一点(右键单击设计器表面并选择“从模型生成数据库”并运行脚本),或者如果你想从代码执行此操作,请使用ctx.Database.Create()或使用CreateDatabaseIfNotExists初始值设定项。

相关问题