EntityFramework Code First 使用简单实现 [图文]

回顾一下EF code first的实现方式,菜鸟随笔仅供参考,欢迎各位大神指出错误,帮助小老弟成长!

EntityFramework 是微软公司为 .NET 开发人员推出的一个 ORM 框架,来实现对数据库单表数据的创建、读取、更新和删除操作。

对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。ORM方便了程序员操作数据库,使程序员专注于业务逻辑开发。

市面上的ORM框架形形色色,总的来说实现方式大同小异,通过在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了,同时这些操作会通过ORM持久化到数据库。

新建一个控制台项目:

引入EF UnGet包:

关键是这两个dll,第二个是EF的SQL server支持,根据具体使用的数据库更改:

简单创建两个类:班级和学生,在创建类的时候可以通过一些特性来对其进行约束,如[Key]主键、[Required]必需、[StringLength(10)]字符串长度限制10等,具体需要可进一步学习特性相关知识:

然后创建自己的数据库上下文类继承DbContext,使用传入一个连接字符串的重载,DbSet<TEntity>即是用来映射数据库表的类,将类和数据库表进行一一对应:

接下来使用包管理器控制台进行迁移操作,关于具体的命令及含义可通过 get-help EntityFrameWork 命令查看,还有就是注意选择迁移文件生成的默认项目:

Enable-Migrations命令允许进行迁移操作,执行命令后会发现多了一个配置类Configuration,可以在这里面进行一些数据库初始化配置:

Add-Migration + 迁移名字 命令新增一个迁移,命令执行后会生成一个迁移的类文件,当你对数据库进行向上迁移时(即对数据库进行新的修改时)Up方法执行,当你对数据库进行向下迁移时(即对数据库的操作进行还原修改)Down方法执行:

可以看到之前在编写类时打上的特性这里成为了列相应的约束,当然你可以在这里进行相应操作,但注意与之前的代码统一:

最后使用 Update-Database 进行数据库更新操作,这样就会依据我们编写的代码进行数据库创建:

在数据库中会生产对应的表及一个迁移历史记录表:

可以看到数据库的表设计是符合我们之前对类打上的特性的:

接下来我们就可以通过数据库类上下文来对数据库进行增删改查了,使用Linq、拉姆达表达式等能够方便快捷地进行操作:

增:

删:

改:

查:

对于web项目,或者处于扩展考虑,我们常常将连接字符串放在配置文件中,可以实现自由切换数据库,实现方式有很多种,下面是一种常规的方式:

在web.config文件的configsections节点后中加入connectionStrings节点,其节点下可配置多个节点,根据name进行区分:

取的时候通过 ConfigurationManager.ConnectionStrings["对应的名称"].ConnectionString,就可以拿到对应的连接字符串,当然也可以通过其他方式实现,大家可自行探索。

个人随笔,仅供参考,欢迎指正错误!

posted @ 2020-09-22 09:25  松树住松鼠  阅读(69)  评论(0编辑  收藏