当涉及到代码优先迁移技术时,我有一种奇怪的感觉。首先,这是一个起源于Ruby on Rails等技术的概念。不是我反对它,不要误会。我担心的是,在涉及到包括报告等高可扩展企业应用程序的情况下,使用Code First Migration是否是一个好的方法。基本上,我指的是数据库设计、优化在整体性能中起到关键作用的情况(去规范化、索引、分片等)。我的感觉是,代码优先迁移带来了很大的开销。我是对的吗,还是错了?我真的很想听听你们的意见。
当涉及到代码优先迁移技术时,我有一种奇怪的感觉。首先,这是一个起源于Ruby on Rails等技术的概念。不是我反对它,不要误会。我担心的是,在涉及到包括报告等高可扩展企业应用程序的情况下,使用Code First Migration是否是一个好的方法。基本上,我指的是数据库设计、优化在整体性能中起到关键作用的情况(去规范化、索引、分片等)。我的感觉是,代码优先迁移带来了很大的开销。我是对的吗,还是错了?我真的很想听听你们的意见。
你错了。
EF Migrations与数据库设计方式无关。它只是一个一次性的过程,仅仅生成两个版本的数据库模式脚本,并自动找出如何从一个版本迁移到另一个版本。
Migrations不会在应用程序运行时运行,它没有任何开销或影响应用程序的性能。它只能使用现有的EF自动生成的模式工作。实际上,这个过程非常通用,甚至不特定于EF,Migrations可以用于在任何两个模式之间进行迁移,无论它们是否使用EF。
因此,它与数据库的性能无关。
模式由EF本身控制,并且取决于您如何映射数据库。是的,如果您让EF完成所有工作,您可能会得到一个不太优化的模式,但是您可以通过使用Fluent Mappings来完全控制它是如何生成的。