【EF学习笔记04】----------EF简单增删改查
从来没想到过能在这个上面翻车,感慨自学没有培训来得系统啊,废话不多说
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