ef code first db first 哪种好

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ef code first db first 哪种好相关的知识,希望对你有一定的参考价值。

参考技术A EF的CodeFirst是个好东西,让我们完全不用考虑数据库端(注意,这里并不是说不需要对数据库知识进行了解),一切工作都可以通过代码来完成。EF是ORM,已经把数据访问操作封装得很好了,可以直接在业务层中使用,那我们为什么还要对其进行那么多封装呢?在我看来,封装至少能带来如下的好处:
把EF的相关对象封装在数据访问层中,解除了业务层对EF的依赖。
统一EF的数据操作,以保证业务层使用相同的代码规范
隐藏EF的敏感配置,降低EF的使用难度
这里就引入一个问题,应该怎样来进行EF的封装呢,既要保证使用的统一与方便性,又要保持EF的灵便性,否则,封装将变成给业务层设置障碍。下面,主要针对数据查询进对可能出现的误用情况进行分析。本回答被提问者和网友采纳

20.翻译系列:Code-First中的数据库迁移技术EF 6 Code-First系列

原文链接:https://www.entityframeworktutorial.net/code-first/migration-in-code-first.aspx

Entity Framework Code-First有很多不同的数据库初始化策略,例如:CreateDatabaseIfNotExists【创建数据库,如果不存在的话】、DropCreateDatabaseIfModelChanges【如果模型发生改变的话,就删除重建数据库】、DropCreateDatabaseAlways【总是删除重建数据库】。然而,对于这些数据库初始化策略,有一些弊端。例如:数据库中已经有数据(不是测试数据)或者已经存在了存储过程,触发器等,这些策略将会删除数据库,重新创建,所以你的数据和数据库对象将会丢失。

 

Entity Framework介绍了一个迁移工具,当你的模型发生改变的时候,自动更新数据库对象,而不用丢失数据及数据库对象。数据库迁移技术使用的是一个新的数据库初始化策略叫做--MigrateDatabaseToLatestVersion

这里有两种类型的数据库迁移:

1.自动迁移【Automated Migration】

2.基于代码的迁移【Code-Based Migration】

后面一节,我们先学习自动迁移。

以上是关于ef code first db first 哪种好的主要内容,如果未能解决你的问题,请参考以下文章

EF Core中的DB First与Code First

EF Core 2.0使用MsSql/Mysql实现DB First和Code First

EF 7 Code First

MSI 可以使用 EF Code First 吗?

code first

ef 用了code first from database 怎么增加新表