从来没想到过能在这个上面翻车,感慨自学没有培训来得系统啊,废话不多说
ORM:对象关系映射(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换
EF:数据持久化
是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称;数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等;其实,简单来说,就是将数据存储到数据库中,为什么这么说呢?因为持久化就不是暂时的,而存储分为暂存和永存两个方面,暂存指的是存储到了计算机的内存中,电源关闭即丢失。而永存就是存储到了类似数据库里,数据就可以反复使用。除此以外,持久化封装了数据访问细节,为大多数业务逻辑提供面向对象的API。
1. 通过持久化技术可以减少访问数据库数据次数,增加应用程序执行速度;
2. 代码重用性高,能够完成大部分数据库操作;
3. 松散耦合,使持久化不依赖于底层数据库和上层业务逻辑实现,更换数据库时只需修改配置文件而不用修改代码
紧接正文,EF CodeFirst进行增删改查的方式
引用EntityFramework后,我们建立好了实体模型
添加:
1、声明 一个EF的上下文
dbEntities dbContext = new dbEntities();
2、声明一个User实体
YJ_USERS user = new YJ_USERS(); user.LoginName = "****"; user.Mail = "****"; user.PassWord = "****"; user.Plane = "****"; user.UserName = "****"; user.cardNo = "****"; user.phone = "****";
3、 告诉EF咱们对上面的实体做一个插入操作
dbContext.YJ_USERS.Add(user);
告诉上下文把实体的变化保存到数据库里面去。
dbContext.SaveChanges();//添加、修改、删除时都要用到的
修改:
1、声明一个User实体
YJ_USERS user = new YJ_USERS(); user.LoginName = "111"; user.Mail = "ssss"; user.PassWord = "ssss"; user.Plane = "ssss"; user.UserName = "ssss"; user.cardNo = "ssss"; user.phone = "ssss"; user.ID = 1;//修改的时候指定id
2、告诉上下文咱们的对此实体进行更新操作
dbContext.Entry(YJ_USERS).State = EntityState.Modified; //这里只修改一列 dbContext.Entry(YJ_USERS).Property(u => u.UserName).IsModified = true;
3、告诉上下文把实体的变化保存到数据库里面去
dbContext.SaveChanges();//执行sql脚本的地方
删除:
1、声明一个User实体
YJ_USERS user = new YJ_USERS(); user.LoginName = "111"; user.Mail = "ssss"; user.PassWord = "ssss"; user.Plane = "ssss"; user.UserName = "ssss"; user.cardNo = "ssss"; user.phone = "ssss"; user.ID = 1;//删除的时候指定id
2、告诉上下文咱们的对此实体进行删除操作
1.dbContext.Entry<HKSJ_USERS>(user).State = System.Data.EntityState.Deleted;
2.dbContext.YJ_USERS.Remove(user);
db.SaveChanges();
查询:
var data = dbContext.YJ_USERS.Where(u => u.ID > 0); foreach (var userInfo in data) { Console.WriteLine(YJ_USERS.ID + " " + YJ_USERS.UserName); }
这里附一篇博客吧,里面写的挺详细的
【EF学习笔记04】----------EF简单增删改查https://www.cnblogs.com/gosky/p/5751815.html