我正在观看 EF 4.1 的一些视频和教程,但我不了解 CodeFirst 的任何好处(除非 DB 是非常小的 3-4 个表并且我懒得先创建 DB)。
大多数情况下,到目前为止,最好的方法是在某种数据库编辑器中创建数据库,这肯定比在实体模型中编辑更快,并且 EF 会拾取每个关系并正确创建关联。我知道在命名约定等方面存在挑战,但我觉得管理 Code First 非常令人困惑,因为一切看起来都像代码,而且代码太多。
CodeFirst 可以做什么而 Db first 不能做什么?
我正在观看 EF 4.1 的一些视频和教程,但我不了解 CodeFirst 的任何好处(除非 DB 是非常小的 3-4 个表并且我懒得先创建 DB)。
大多数情况下,到目前为止,最好的方法是在某种数据库编辑器中创建数据库,这肯定比在实体模型中编辑更快,并且 EF 会拾取每个关系并正确创建关联。我知道在命名约定等方面存在挑战,但我觉得管理 Code First 非常令人困惑,因为一切看起来都像代码,而且代码太多。
CodeFirst 可以做什么而 Db first 不能做什么?
CodeFirst 不能做 DB first 不能做的任何事情。归根结底,他们都在使用实体框架。
使用 codefirst 的主要优点是:
有关更多信息,请参阅代码优先与模型/数据库优先 和此处代码优先或数据库优先,如何选择?
来自以数据为中心的方法,我总是觉得人们喜欢在代码优先方法中创建它很奇怪。当我设计我的数据库时,我已经在考虑每个表是什么,就好像它们是类一样。它们如何链接在一起以及数据将如何流动。我可以通过数据库对整个系统进行映像。
我一直被教导要从头开始工作,打好基础,其他一切都会随之而来。我为许多不同的公司创建了许多不同的系统,而我这样做的速度是基于这样一个事实,即一旦我有了一个强大的数据库模型,我就会运行我的自定义代码生成器来创建视图/存储过程以及我的 Controller/BusinessLayer/DataLayer,将所有这些放在一起,我所要做的就是创建前端。
如果我必须首先在代码中创建整个系统以生成数据库以及所有其他项目,那么我会想象它需要更长的时间。我并不是说我在任何方面都是正确的,而且我确信可能存在更快、更有经验的系统开发方法,但到目前为止,我还没有找到一种方法。
感谢您让我发言,我希望我的观点对您有所帮助。
好吧,这取决于您的项目。我会尝试做一个合成器一些想法: