Possible Duplicate:
EF 4.1 Code-first vs Model/Database-first
我刚刚开始学习EF 4.0 CodeFirst,我想听听专家的有关
EF CodeFirst有哪些优缺点?
最佳答案
我认为每种方法都更适合于不同的情况:
建议使用数据库优先或模型优先的方案:
具有稳定架构的持久数据库
对数据库和模型的更改是增量的
您希望能够在一个图中查看模型并从那里进行更新
您可以将模型划分为非重叠图
建议使用“代码优先”的方案:
模型开发由对数据库不感兴趣的程序员完成
模型类包含逻辑
模型类具有奇异的(非标准)结构
将模型划分为许多在设计时都不知道的装配体(扩展名)
数据库寿命短(例如应用程序的运行时)
数据库可以经常更改
如果您希望数据库具有足够的动态性以包含不断变化的结构,那么请考虑您的模型/模式可重复使用的通用类/表,以用于不同/上下文相关的目的。
更新:
我现在建议在其他情况下使用Code-First:
当您希望能够在LocalDB上编写并快速轻松地运行集成测试时(而不是使用SSDT)
如果您宁愿只在一个地方看到模型和映射,而不必浏览图表和映射窗口
如果您希望某人正确地映射属性而使其更加可见,例如作为并发检查
由于您可以轻松地在非本地环境中禁用模式生成,因此数据库的字符不太重要