使用DB First与Code First的优点/缺点是什么?

问题描述:

我知道enum s目前仅在2011年6月份推出,不会在4.2版本中提供。还有什么其他因素会让别人选择其中一个呢?使用DB First与Code First的优点/缺点是什么?

拉吉斯拉夫Mrnka有great SO answer,打破了DB首先,代码优先和模型优先之间的差异。我强烈建议你去阅读它,并注意它。

除此之外,我只想补充以下几点:

  • 即使是在2011年6月CTP,枚举支持是有限的,所以你可能 想看看是否有这些问题都是搅局者为您。更新:EF5 +支持Enums with EF DesignerCode First

  • 如果要针对一个Oracle数据库,实施EF和你 不想支付数据提供,那么你将 没有代码首先,Oracle的own provider(仍处于测试阶段) 不支持它。

编辑:这是另一个全面的answer from Ladislav

优势:对所有对象查询它是否是数据库与否,漂亮的快,如果按照规定使用一种常见的语法(LINQ /尤达),易于实现的SoC,减少代码量需要完成复杂的任务

缺点:你必须考虑在处理数据,并不适用于所有的数据库

缺点一种非传统的方式:如果在数据库中的任何架构更改FE将无法正常工作!您必须更新解决方案中的模式!

优点:它使用LINQ/FE对象的快速和直接转发用于添加/修改/删除/更新。

优点: - 易于映射业务对象(在环境中拖放&删除表)。 - 当您使用中/小型模型时,它会保持良好的性能。

缺点: - 当你使用巨大的领域模型时,它受到限制。 - 可扩展性。