【C#】Entity Framework 增删改查和事务操作

简介: 1、增加对象   DbEntity db = new DbEntity(); //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长主键外),如果不赋值,则会数据库中会被设置为NULL(注意是否可空) v...

1、增加对象  

复制代码
            DbEntity db = new DbEntity();
            //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长主键外),如果不赋值,则会数据库中会被设置为NULL(注意是否可空)
            var user = new User { Name = "bomo", Age = 21, Gender = "male" }; db.User.Add(user); db.SaveChanges();
复制代码

2、删除对象,删除只需要对象的主键

复制代码
            DbEntity db = new DbEntity();
            //删除只需要主键,这里删除主键为5的行
            var user = new User {Id = 5}; //将实体附加到对象管理器中  db.User.Attach(user); //方法一:  db.User.Remove(user); //方法二:把当前实体的状态改为删除 //db.Entry(user).State = EntityState.Deleted; db.SaveChanges();
复制代码

3、修改对象

  方法一:

复制代码
            DbEntity db = new DbEntity();
            //修改需要对主键赋值,注意:这里需要对所有字段赋值,没有赋值的字段会用NULL更新到数据库
            var user = new User { Id = 5, Name = "bomo", Age = 21, Gender = "male" }; //将实体附加到对象管理器中  db.User.Attach(user); //把当前实体的状态改为Modified db.Entry(user).State = EntityState.Modified; db.SaveChanges();
复制代码

  方法二:方法一中每次都需要对所有字段进行修改,效率低,而且麻烦,下面介绍修改部分字段

复制代码
            DbEntity db = new DbEntity();
            //修改需要对主键赋值,注意:这里需要对所有字段赋值,没有赋值的字段会用NULL更新到数据库
            var user = new User { Id = 5, Name = "bomo", Age = 21 }; //将实体附加到对象管理器中  db.User.Attach(user); //获取到user的状态实体,可以修改其状态 var setEntry = ((IObjectContextAdapter) db).ObjectContext.ObjectStateManager.GetObjectStateEntry(user); //只修改实体的Name属性和Age属性 setEntry.SetModifiedProperty("Name"); setEntry.SetModifiedProperty("Age"); db.SaveChanges();
复制代码

4、使用事务:使用事务很简单,只要把需要的操作放在 TransactionScope 中,最后提交

复制代码
            DbEntity db = new DbEntity();
            using (var scope = new TransactionScope()) { //执行多个操作 var user1 = new User { Name = "bomo", Age = 21, Gender = "male" }; db.User.Add(user1); db.SaveChanges(); var user2 = new User { Name = "toroto", Age = 20, Gender = "female" }; db.User.Add(user2); db.SaveChanges(); //提交事务  scope.Complete(); }
复制代码

5、查询:查询通过LinQ查询

            DbEntity db = new DbEntity();
            //选择部分字段
            var user = db.User.Where(u => u.Name == "bomo").Select(u => new {Id = u.Id, Name = u.Name, Age = u.Age}).FirstOrDefault(); //只有调用了FirstOrDefault, First, Single, ToList, ToArray等函数才会执行对数据库的查询

  查询基本都是LinQ的内容,内容有点多,下次在总结

目录
相关文章
|
8月前
|
SQL 开发框架 .NET
C#进阶-LINQ实现对集合的增删改查
本篇演示了LINQ在日常开发中的常用操作,实现结果集的增删改查。目前LINQ支持两种语法,我会在每个案例前先用大家熟知的SQL语句表达,再在后面用C#的两种LINQ语法分别实现。LINQ语法第一次接触难免感到陌生,最好的学习方式就是在项目中多去使用,相信会有很多感悟。
107 0
|
5月前
|
关系型数据库 MySQL 大数据
C#使用SqlSugar操作MySQL数据库实现简单的增删改查
C#使用SqlSugar操作MySQL数据库实现简单的增删改查
315 2
|
8月前
|
SQL 前端开发 数据库连接
C# Lable增删改查
C# Lable增删改查
69 0
|
SQL 存储 数据库
C#三十三 事务
C#三十三 事务
60 0
|
SQL 数据库 C#
C#&SQL Server基于三层架构实现增删改查
C#&SQL Server基于三层架构实现增删改查
735 0
C#&SQL Server基于三层架构实现增删改查
|
SQL 存储 安全
C#+SQLServer 用户信息增删改查实战
本文目录 1. 概述 2. 数据库设计 3. 项目开发 3.1 界面设计 3.2 定义数据库访问字符串、数据库连接 3.2 查询用户 3.3 新增用户 3.4 删除用户 3.5 修改用户 4. 小结
339 0
C#+SQLServer 用户信息增删改查实战
|
JSON 前端开发 API
C#使用Xamarin开发可移植移动应用进阶篇(10.综合演练,来一份增删改查CRUD)
原文:C#使用Xamarin开发可移植移动应用进阶篇(10.综合演练,来一份增删改查CRUD) 前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.
1046 1