What are the advantages/disadvantages of using DB First versus Code First?
我知道
Ladislav Mrnka有一个很好的SO答案,它可以解决DB First,Code First和Model First之间的差异。我强烈建议您去阅读并投票。
除此之外,我只补充以下几点:
-
即使在2011年6月的CTP中,对Enum的支持也很有限,因此您可能
想看看是否有任何问题对您有用。 s>更新:EF5 +通过EF Designer和Code First支持枚举。 -
如果您正在针对Oracle数据库实施EF,并且您
不想支付数据提供商的费用,那么您将
不使用Code First,作为Oracle自己的提供程序(仍处于beta中) s>
不支持。
编辑:这是拉迪斯拉夫的另一个全面的答案。
请参阅中的实体框架开发方法
http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application
优点:一种通用语法(LINQ / Yoda),可用于所有对象查询(无论是否为数据库);如果按预期使用,则非常快;易于实现SoC;完成复杂任务所需的编码更少
缺点:您必须以一种非传统的方式来处理数据,并非每个数据库都可用
缺点:如果数据库FE中发生任何架构更改,将无法正常工作!!!!您还必须在解决方案中更新架构!!!
优点:使用LINQ / FE对象快速,直接地进行添加/修改/删除/更新。
优点:-易于映射业务对象(在环境中具有拖放表)。
-当您使用小型/中型域模型时,它将保持良好的性能。
缺点:-使用大型域模型时,它是有限的。
-可扩展性。