【问题标题】:How to create database on different host from schema-first model?如何从模式优先模型在不同的主机上创建数据库?
【发布时间】:2014-02-21 11:02:48
【问题描述】:

我有一个预先存在的数据库和从中生成的 Entity Framework 6 database-first 模型。我需要在不同的主机和/或数据库引擎上创建相同的数据库。我希望我可以使用与代码优先相同的模型,但是生成的DbContextOnModelCreating 方法似乎受到保护,不会被用于代码优先方法,它会抛出UnintentionalCodeFirstException。生成的模型也没有应用任何属性。

有没有办法重用我的数据库优先模型来创建具有相同架构的数据库?或者,也许有一种我缺少的明显且更简单的方法?

【问题讨论】:

  • 如果要创建数据库,为什么需要触摸 OnModelCreating?您应该可以从设计器执行此操作(右键单击设计器表面并选择“从模型生成数据库”并运行脚本),或者如果您想从代码执行此操作,请执行 ctx.Database.Create() 或使用 CreateDatabaseIfNotExists 初始化程序.
  • @Pawel 哦。我想这是我期望存在的“一种明显且更简单的方式”。 :) 感谢您指出正确的方向。您可以将其发布为答案。

标签: c# .net entity-framework ef-code-first ef-database-first


【解决方案1】:

如果您只想创建数据库,则无需使用OnModelCreating 方法。您应该能够从设计器执行此操作(右键单击设计器表面并选择“从模型生成数据库”并运行脚本),或者如果您想从代码执行此操作,请执行 ctx.Database.Create() 或使用 CreateDatabaseIfNotExists 初始化程序.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 1970-01-01
    • 2014-07-20
    相关资源
    最近更新 更多