3

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

4

1 回答 1

1

你错了。

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

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

因此,它与数据库的执行方式无关。

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

于 2012-09-28T16:58:38.067 回答