9.翻译:EF基础系列---使用EF开发的方式有哪些?

摘要:
EF6全面的支持数据库优先模式。遵循领域驱动设计原则的开发人员,更愿意先编写他们的领域类,然后生成数据库,进行开发程序。在后面的EF6Code-First系列和EFCore系列中我们将详细学习这个开发模式。请注意:EF6有限制的支持Model-First方式,而EFCore一点都不支持这种开发方式。了解完,上面的开发模式之后,我们开发程序的时候,怎么选择开发模式呢?使用下面的图形来决定,什么时候使用什么开发模式。好了,EF的基础系列,第七篇就介绍完了。

原文链接:http://www.entityframeworktutorial.net/choosing-development-approach-with-entity-framework.aspx

使用EF有三种方式:

  1. Database--First【数据库优先】
  2. Code--First【代码优先】
  3. Model--First【模型优先】

先看看数据库优先模式吧

在数据库优先的模式中,你使用Visual Studio中集成的实体模型对象向导来为已经存在的数据库,生成上下文类以及实体集,或者执行相关的EF命令。

9.翻译:EF基础系列---使用EF开发的方式有哪些?第1张

EF 6全面的支持数据库优先模式。EF Core中有限制的支持数据库优先模式。 后面我们在EF DB-First系列中将会具体学习。

接着看看代码优先模式吧

使用代码优先模式,你在程序中没有事先存在的数据库,在这个模式中,你首先编写实体(领域类),然后还有上下文类,然后通过借助这些类,使用数据库迁移命令,创建数据库。

遵循领域驱动设计(DDD)原则的开发人员,更愿意先编写他们的领域类,然后生成数据库,进行开发程序。

9.翻译:EF基础系列---使用EF开发的方式有哪些?第2张

在后面的EF 6 Code-First系列和 EF Core系列中我们将详细学习这个开发模式。

最后一起看看模型优先模式吧

在模型优先模式中,你通过Visual Studio中集成的图形设计器,来创建实体,实体关系,以及继承关系,然后生成实体,上下文类,以及数据库脚本(根据你的可视化实体生成的)。

9.翻译:EF基础系列---使用EF开发的方式有哪些?第3张

请注意: EF 6 有限制的支持Model-First方式,而EF Core一点都不支持这种开发方式。所以我们不学Model First了

了解完,上面的开发模式之后,我们开发程序的时候,怎么选择开发模式呢?使用下面的图形来决定,什么时候使用什么开发模式。

9.翻译:EF基础系列---使用EF开发的方式有哪些?第4张

就像上面图形说的,如果程序中以及有了领域类,你就可以选择Code-First模式,因为你可以根据实体生成数据库,如果你已经有了数据库,那么就可以选择数据库优先模式,使用实体对象模型,来创建相应的实体,以及上下文类,如果你没有数据库,也没有领域类,就可以选择第三种模式,也就是模型优先模式。

好了,EF的基础系列,第七篇就介绍完了。有不明白的可以留言,谢谢支持。

附录:

EF 6官方文档:https://docs.microsoft.com/zh-cn/ef/ef6/

EF Core官方文档:https://docs.microsoft.com/zh-cn/ef/core/

免责声明:文章转载自《9.翻译:EF基础系列---使用EF开发的方式有哪些?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Google code android开源项目(一)macOS Catalina 根目录锁定问题解决方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql通过数据文件恢复数据方法

情况描述:服务器硬盘损坏,服务器换了个新硬盘 ,然后老硬盘插在上面。挂载在这台机器。可以从老硬盘里面拿到数据。只拿到了里面的mysql数据文件夹,把数据文件夹覆盖新的服务器mysql数据文件夹 启动报错!!!报错!!!错!!!。 数据文件如下: 于是觉得不能使用覆盖文件的方式还原数据,得使用科学方法恢复。google之…… 找到解决办法如下: 可以发现数...

将excel文件的内容导入sql server数据库的方法

1,首先创建一个相应的表,格式保证和excel文件相同。 2,在导入之前,要把数据库安全限制的开关打开。地点是sql server 构成 tool 的 security 构成里面的机能security构成里面的 open row set & open data source 选项打上钩。确定。 3,输入sql语句,执行导入 例子如下 Codeus...

开源物联网平台(Thingsboard)-运行

环境准备 已经编译过的代码环境,可参考前篇 编译 IDE Idea或Eclipse,本文使用Idea PG数据库 Postgresql 12+,本文使用Docker初始化 docker run --name tb_pg -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres:12   支持Html5...

Entity Framework 数据库先行、模型先行、代码先行

数据库先行(Database First):基于已存在的数据库,利用某些工具(如Vs提供的EF设计器)创建实体类,数据库对象与实体类的匹配关系等,你也可以手动修改这些自动生成的代码及匹配文件。 模型先行(Model First):先利用某些工具(如VS的EF设计器)设计出实体数据模型及他们之间的关系,然后再根据这些实体、关系去生成数据库对象及相关代码文件。...

SQLServer 错误: 15404,维护计划无法执行

   错误症状: D:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLLOG下面的ERROELOG,用文本打,查看运行维维计划不成功是生成的错误日志详细信息:2011-08-11 14:16:48 - ! [298] SQLServer 错误:  15404,无法获取有关 Windows NT 组/用户 '计算...

MySQL Workbench 怎么创建数据库

第1步:单击MySQLWorkbench.exe快捷方式,弹出MySQLWorkbench界面 第2步:单击菜单栏Database按钮,弹出下拉菜单,单击Connect to Database,第3步:单击OK按钮,输入数据库密码第4步:单击工具栏按钮(第四个,即鼠标放在 上面显示Create a new schema in the connected s...