回顾一下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,就可以拿到对应的连接字符串,当然也可以通过其他方式实现,大家可自行探索。
个人随笔,仅供参考,欢迎指正错误!
原文转载:http://www.shaoqun.com/a/477539.html
vat:https://www.ikjzd.com/w/109
auction:https://www.ikjzd.com/w/2311
kkr:https://www.ikjzd.com/w/1340
回顾一下EFcodefirst的实现方式,菜鸟随笔仅供参考,欢迎各位大神指出错误,帮助小老弟成长!EntityFramework是微软公司为.NET开发人员推出的一个ORM框架,来实现对数据库单表数据的创建、读取、更新和删除操作。对象关系映射(英语:ObjectRelationalMapping,简称ORM,或O/RM,或O/Rmapping),是一种程序设计技术,用于实现面向对象编程语言里不同类
tradekey:https://www.ikjzd.com/w/1630
camel:https://www.ikjzd.com/w/331.html
2016中国(常州)跨境电商全球峰会:https://www.kjyunke.com/courses/181
与亚马逊结缘的故事:从"小白"到"大佬":https://www.ikjzd.com/home/123519
2019年亚马逊快速选品别丢掉这些基本逻辑:https://www.ikjzd.com/home/15834
No comments:
Post a Comment