Possible Duplicate:
EF 4.1 Code-first vs Model/Database-first




我刚刚开始学习EF 4.0 CodeFirst,我想听听专家的有关
EF CodeFirst有哪些优缺点?

最佳答案

我认为每种方法都更适合于不同的情况:

建议使用数据库优先或模型优先的方案:


具有稳定架构的持久数据库
对数据库和模型的更改是增量的
您希望能够在一个图中查看模型并从那里进行更新
您可以将模型划分为非重叠图


建议使用“代码优先”的方案:


模型开发由对数据库不感兴趣的程序员完成
模型类包含逻辑
模型类具有奇异的(非标准)结构
将模型划分为许多在设计时都不知道的装配体(扩展名)
数据库寿命短(例如应用程序的运行时)
数据库可以经常更改


如果您希望数据库具有足够的动态性以包含不断变化的结构,那么请考虑您的模型/模式可重复使用的通用类/表,以用于不同/上下文相关的目的。


更新:

我现在建议在其他情况下使用Code-First:


当您希望能够在LocalDB上编写并快速轻松地运行集成测试时(而不是使用SSDT)
如果您宁愿只在一个地方看到模型和映射,而不必浏览图表和映射窗口


如果您希望某人正确地映射属性而使其更加可见,例如作为并发检查

由于您可以轻松地在非本地环境中禁用模式生成,因此数据库的字符不太重要

08-07 05:34