CodeFirst 相对于 Database First 的优势是什么?

2024-02-11

我正在观看 EF 4.1 的一些视频和教程,我不明白 CodeFirst 的任何好处(除了一些 DB 非常小的 3-4 个表并且我懒得先创建 DB 的情况)。

大多数情况下,迄今为止最好的方法是在某种数据库编辑器中创建数据库,这肯定比在实体模型中进行编辑更快,并且 EF 会正确获取每个关系并创建关联。我知道命名约定等方面存在挑战,但我觉得管理 Code First 非常令人困惑,因为一切看起来都像代码,而且编码也太多了。

CodeFirst 能做什么而 Db First 不能做什么?


CodeFirst 不能做 DB First 不能做的事情。归根结底,他们都在使用实体框架。

使用 codefirst 的主要优点是:

  • 开发速度- 您不必担心刚开始编码就创建数据库。适合具有编程背景但没有太多 DBA 经验的开发人员。它还具有自动数据库更新功能,因此每当模型发生更改时,数据库也会自动更新。
  • POCOs- 代码更加简洁,您最终不会遇到大量自动生成的代码。您可以完全控制您的每个课程。
  • Simple- 您没有要更新或维护的 edmx 模型

欲了解更多信息,请参阅代码优先与模型/数据库优先 https://stackoverflow.com/questions/5446316/ef-4-1-code-first-vs-model-database-first和这里代码优先还是数据库优先,如何选择? https://stackoverflow.com/questions/919880/code-first-or-database-first-how-to-choose

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CodeFirst 相对于 Database First 的优势是什么? 的相关文章

随机推荐

  • 在selenium中读取PDF:构造函数PDFParser(BufferedInputStream)未定义

    我收到错误 构造函数 PDFParser BufferedInputStream 未定义 我正在尝试使用 Selenium 阅读 PDF 内容 WebDriver driver new FirefoxDriver driver get ht
  • 编辑文本上显示红色下划线的文本

    我正在使用一个EditText从用户处获取日期 因此 当我以给定的默认值运行应用程序时 它会用红色下划线显示文本 XML Code
  • java Swing 中的锚定和停靠控件

    在 net中 有一个称为锚定的控件 用于随表单动态调整控件的大小 当控件锚定到窗体并且调整窗体大小时 控件将保持控件与锚点位置之间的距离 我的问题是 java 中是否有任何控件具有与 net 中的锚定功能相同的功能 作为一个例子 我选择了一
  • 我想使用 Stormpath、Express.js 和 Node.js。我想要stormpath-express 还是express-stormpath?

    我之前发布了一个问题 要转移正在运行的 Node 项目 我需要了解什么 https stackoverflow com questions 32319150 what do i need to know to transfer a work
  • 错误:调用非对象上的成员函数 get()

    我正在尝试使用 Swift Message 发送邮件 但是当我发送数据时 它不会发送 并且出现以下错误 FatalErrorException 错误 调用成员函数 get 非对象在 vagrant vendor symfony symfon
  • PHP Mailer 编译并存储消息以供以后发送

    我们可以在 PHP 邮件程序中将消息编译并存储为草稿 然后再发送每条消息吗 It is使用 PHPMailer 可以做到这一点 使用您通常发送消息所需的一切配置 PHPMailer 实例后 不要调用send 相反打电话preSend 构造消
  • 带有大标题的 UINavigationBar - 如何在 iOS 11 中找到额外的高度

    当使用prefersLargeTitles时UINavigationController s UINavigationBar in iOS 11 导航栏增加高度 我检查过的 iPhone 上的数量从 44 增加到 96 但我认为这些数字可以
  • 为什么 PHP 内置对象无法序列化?

    我尝试反序列化 PHP 对象 警告 unserialize function unserialize 节点不再存在于 var www app php 第 42 行 But why那件事发生了吗 即使我找到了反序列化 simplexml 对象
  • 来自API的奇怪字符串的java字符编码

    我对 API 的响应遇到了奇怪的问题 我正在使用 apache HTTP 客户端来获取响应 响应头有以下内容 Content Type application json charset utf 16 Transfer Encoding ch
  • 如何更改 iOS 7 中 UISearchBar 中放大镜图标的位置或隐藏放大镜图标?

    我正在开发 IOS 7 应用程序 默认情况下 它的显示像图 1 但我需要将其更改为图 2 我在谷歌上搜索并找到了一些要求的答案 但它没有改变 否则我需要隐藏 这样我就可以使用背景图像进行管理 这是第一张图像 我用下面的代码修改它 但没有成功
  • Python 3 中全局变量的正确使用

    Python 3 中全局变量的正确用法是 1 陈述global VAR NAME一旦进入核心脚本 不在函数内 然后简单地将变量引用为VAR NAME其他地方 2 陈述global VAR NAME在每个使用全局变量的函数中一次 然后简单地将
  • 如何使用 GTK+ / Cairo 旋转图像

    我有一个简单的应用程序 应该使用每 x 毫秒旋转装饰轮这么多度GTK and Cairo 我下面有一些代码可以调用cairo rotate 来自计时器 然而 图像并没有改变 我是否必须使图像无效才能引发暴露事件 我对开罗很陌生 一个简单的例
  • Android SDK与ubuntu设置代理

    在哪里可以找到 android SDK 代理设置 我正在使用 ubuntu 提前致谢 我所拥有的一切都在下面的屏幕中 我目前只能在我的 mac 上查看 设置存储在 android androidtool cfg 我的设置目前如下所示 Set
  • 检查断点处的条件时 gdb 失败

    我定义一个断点 b foo 124 if strcmp bar foo getName abc 0 但是 gdb 失败并出现以下错误 Thread 0x7fffe8ef9700 LWP 25817 exited Switching to T
  • 如何让用户使用 Android 中的 Intent 仅选择本地文件?

    我需要让用户从本地存储中为我的应用程序选择一个文件 现在我正在使用INTENT ACTION GET CONTENT让用户选择文件 但它也提供了从云中选择 URI 的选项 获取 URI 文件后 我将其视为本地文件并执行各种操作 包括提取文件
  • 将组合框显示文本设置为 ObservableCollection 的属性

    我有以下集合 我想将其绑定到组合框 public ObservableCollection
  • 使用 jquery.each() 循环创建对象键

    我正在 javascript 中创建一个命名空间来循环遍历表单并创建一个对象 调用该函数的目标是循环遍历所有特定表单类型并构造一个对象 该对象的键是 html 输入的名称 值是其当前值 但是 它始终返回未定义 任何帮助将不胜感激 get f
  • 尽管符号存在,但 CMake 中的符号查找失败

    我正在尝试使用 CMake 检查符号 getaddrinfo a 是否存在 list APPEND CMAKE REQUIRED DEFINITIONS D GNU SOURCE check symbol exists getaddrinf
  • 如何用C++扩展TCL?

    我可以编写可编译并用于扩展 TCL 的 C 代码 我不是指调用可执行文件 吗 我可以描述一些类 函数并通过调用已编译的 so 或 a 文件 C 代码在我的 TCl 代码中使用它们吗 如果是 请示意性地向我解释一下它是如何完成的 http c
  • CodeFirst 相对于 Database First 的优势是什么?

    我正在观看 EF 4 1 的一些视频和教程 我不明白 CodeFirst 的任何好处 除了一些 DB 非常小的 3 4 个表并且我懒得先创建 DB 的情况 大多数情况下 迄今为止最好的方法是在某种数据库编辑器中创建数据库 这肯定比在实体模型