【问题标题】:Entity Framework Code First Migration - Bad or Good [closed]实体框架代码优先迁移 - 坏或好 [关闭]
【发布时间】:2012-09-28 08:35:54
【问题描述】:

提到代码优先迁移技术,我有一种奇怪的感觉。首先,这是一个起源于 Ruby on Rails 等技术的概念。并不是说我确实反对它,请不要误会我的意思。我不确定的是,当涉及到可以包括报告等的高度可扩展的企业应用程序时,如果使用 Code First 迁移是一种好方法。基本上我指的是数据库设计、优化起着关键作用的情况在一般性能方面(非规范化、索引、分片等)。我的感觉是 Code First 迁移带来了很大的开销。我是对的,我错了吗?我真的很想听听你的意见。

【问题讨论】:

    标签: entity-framework-4.1 ef-code-first entity-framework-migrations


    【解决方案1】:

    你错了。

    EF 迁移与数据库的设计方式无关。这只是一个一次性过程,仅针对两个版本的数据库模式生成脚本,并弄清楚如何自动从一个版本迁移到另一个版本。

    迁移不会在应用运行时运行,它不会产生任何开销或影响应用的性能。它仅适用于现有模式,因为 EF 本身会生成它们。事实上,这个过程非常通用,甚至不是特定于 EF 的,Migrations 可用于在任意两个模式之间迁移,无论它们是否使用 EF。

    因此,它与数据库的性能无关。

    架构由 EF 本身控制,并且取决于您映射数据库的方式。是的,确实,如果您让 EF 完成所有工作,您最终可能会得到一个不太理想的架构,但您可以通过使用 Fluent Mappings 完全控制它如何生成它。

    【讨论】:

    • 我所指的开销是关于维护过程,当数据库模式必须改变以提高性能时。我从来没有提到迁移在应用程序运行时运行。
    • @MihaiH - 那我真的不明白你的意思。您必须以一种或另一种方式更改数据库,我看不出自动生成脚本来这样做比手动生成更多开销。
    • 为了保持迁移同步?您知道迁移依赖于实际的 POCO 以及它们之间的关系。
    • 其实没有问题。我唯一怀疑的是迁移的好处。
    • @MihaiH - 在迁移之前,EF 会在您修改模型时删除表。这会丢失表中的所有数据。使用迁移,它会将数据迁移到新表作为该过程的一部分。另一个好处是它可以自动生成脚本以将架构更改应用到您的生产数据库。
    猜你喜欢
    • 2013-12-29
    • 1970-01-01
    • 2017-10-31
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多