我正在观看EF 4.1的一些视频和教程,我不明白CodeFirst的任何好处(除了一些如果DB是非常小的3-4个表而且我很懒于创建数据库)。
大多数情况下,到目前为止最好的方法是在某种数据库编辑器中创建数据库,这肯定比在实体模型中编辑更快,EF可以获取每个关系并正确创建关联。我知道命名约定等方面存在挑战,但我觉得管理Code First非常困惑,因为所有内容看起来都像代码,而且代码也太多了。
CodeFirst可以做什么,Db首先不能做什么?
答案 0 :(得分:17)
CodeFirst不能做任何DB首先不能做的事情。在一天结束时,他们都在使用实体框架。
使用codefirst的主要优点是:
有关详细信息,请参阅Code-first vs Model/Database-first 在这里Code-First or Database-First, how to choose?
答案 1 :(得分:7)
来自DataCentric方法,我总是觉得人们喜欢用Code First方法创建它很奇怪。当我设计我的数据库时,我已经在考虑每个表是什么,就好像它们是类。它们如何链接在一起以及数据如何流动。我可以通过数据库对整个系统进行成像。
我一直被告知你从头开始工作,让你的基础正确,其他一切都会随之而来。我为许多不同的公司创建了许多不同的系统,我所做的速度基于这样一个事实:一旦我拥有一个强大的数据库模型,我就会运行我的自定义代码生成器,创建视图/存储过程为以及我的Controller / BusinessLayer / DataLayer,把所有这些放在一起,我所要做的就是创建前端。
如果我必须首先在代码中创建整个系统来生成数据库,以及所有其他项目,那么我会想象它需要更长的时间。我并不是说我在任何方面都是正确的,而且我确信可能有更快,更有经验的方法来开发系统,但到目前为止,我还没有找到它。
感谢您让我发言,我希望我的观点有所帮助。
答案 2 :(得分:2)
在Entity Framework 4.3中为Code First启用了迁移,因此 您可以轻松地无缝更新从模型到数据库的更改Reference 1