【发布时间】:2010-09-08 19:49:25
【问题描述】:
如何从实体数据模型创建数据库。
所以我在 VisualStudio 2008 中使用 EDM Designer 创建了一个数据库,现在我想生成 SQL Server Schema 以在 SQL Server 中创建存储。
【问题讨论】:
标签: sql entity-framework ado.net
如何从实体数据模型创建数据库。
所以我在 VisualStudio 2008 中使用 EDM Designer 创建了一个数据库,现在我想生成 SQL Server Schema 以在 SQL Server 中创建存储。
【问题讨论】:
标签: sql entity-framework ado.net
据我了解,您不应该只是将 EDM 用作“漂亮”的数据库设计器,实际上 EDM 并不依赖于特定的存储层。它试图为开发人员抽象出这部分。有设计模式(CSDL)和存储模式(SSDL)。总之,不是要教训你。 ;)
有 EDM Generator,您可以使用它来创建模型和类等。对于 DDL 类型的导出,我从未这样做过,但我所做的是将我的 EDM 映射到现有数据库,这更容易让我开始。
在 MSDN 上有一个很棒的教程,其中详细说明了如何使用现有数据库的分步说明,还涉及如何从头开始的方法。
【讨论】:
“从模型生成数据库架构”功能计划在实体框架的未来版本中使用。 V1 不支持基于 EF 模型的模式生成。
【讨论】:
我相信其他答案暗示了这一点,但只是为了明确 - 使用 SSMS(或者如果你是一个勇敢的唯一而不使用 SQL Server 提供者,则使用任何等价物)来设计 DB 布局,然后将其吸收到 EDM 中 - 并且然后根据需要对模型应用应用程序更改。
我花了大约一个小时尝试先按照自己的方式做(其他一些 Java ORM 工具的遗留习惯) - 我最终放弃了,现在按照“正确的方式”做 (tm)
最终,从模型功能中生成数据库架构会很好(正如 JRoppert 所指出的那样) - 然后您可以自动获取各种数据库风格的 DDL。
【讨论】:
从模型生成数据库是实体框架 vNext 计划的一项功能。 查看Entity Framework Design 中的blog post,它解释了从模型生成数据库的计划功能。
您现在必须做的是 1) 手动生成数据库,或 2) 解析 CSDL 文件并编写自己的生成器。我认为选项 1) 可能是更好的选择。
【讨论】:
【讨论】: