【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的内容,内容有点多,下次在总结

目录
相关文章
|
7月前
|
SQL 存储 数据库
C#三十三 事务
C#三十三 事务
26 0
|
SQL 存储 安全
C#+SQLServer 用户信息增删改查实战
本文目录 1. 概述 2. 数据库设计 3. 项目开发 3.1 界面设计 3.2 定义数据库访问字符串、数据库连接 3.2 查询用户 3.3 新增用户 3.4 删除用户 3.5 修改用户 4. 小结
273 0
C#+SQLServer 用户信息增删改查实战
|
JSON 前端开发 API
C#使用Xamarin开发可移植移动应用进阶篇(10.综合演练,来一份增删改查CRUD)
原文:C#使用Xamarin开发可移植移动应用进阶篇(10.综合演练,来一份增删改查CRUD) 前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.
980 0