Entity Framework 增删改查和事务操作

转载 2018年04月16日 17:09:21

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等函数才会执行对数据库的查询

Entity Framework 增删改查和事务操作

1、增加对象   DbEntity db = new DbEntity(); //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长...
  • zhoujunqiangjava
  • zhoujunqiangjava
  • 2016年10月06日 19:40
  • 108

entity framework—简单的增删改查

entity framework中进行修改、删除、增加数据,都需要将要操作的数据先添加到“上下文”中,并修改上下文的状态,最后调用SaveChange这个方法。而查询可以利用Linq语句查询或者利用l...
  • suneqing
  • suneqing
  • 2014年12月16日 23:59
  • 3919

entityframework 增删改查

using System; using System.Collections.Generic; using System.Linq; using System.Text; namesp...
  • zhangj391
  • zhangj391
  • 2016年07月23日 03:09
  • 329

entity framework增删改查简单操作

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace my...
  • zunguitiancheng
  • zunguitiancheng
  • 2015年11月27日 08:00
  • 501

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

1、增加对象   DbEntity db = new DbEntity(); //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长...
  • findsafety
  • findsafety
  • 2015年08月19日 16:52
  • 1688

自己编写的 entity framwork 6 通用 dal 类 增删改查 多分类字段

public class BaseDAL where T : class,new() { string strConn = ""; public BaseDAL...
  • laokaizzz
  • laokaizzz
  • 2014年05月06日 17:38
  • 970

Entity Framework 增删改查基本操作(封装基类)

 分享一下自己在使用EF时,对增删改查基本操作的封装代码,一般在Biz层使用一个基类(因公司风格叫Biz层,其实就是DAL层)。1.基类代码:使用虚方法子类可以重写。public class BizB...
  • chwenbin
  • chwenbin
  • 2018年01月19日 23:00
  • 207

Entity Framework菜鸟初飞【4】—— 增删改查

针对已经生成的实体类模型,简要演练下增删改查 using System; using System.Linq; namespace EF { class Program { ...
  • zezhi821
  • zezhi821
  • 2012年02月05日 18:40
  • 5458

Entity Framework和MVC 实现增删改查的控制器代码

一.更新一条数据的关键代码 public ActionResult Edit(int id, UserInfo user) { try ...
  • xuanwuziyou
  • xuanwuziyou
  • 2014年02月28日 10:34
  • 1782

Entity Framework 5.0 增删改查(级联)

Entity Framework 5.0 增删改查(级联) 2012年08月13日 ⁄ 综合 ⁄ 共 1484字 ⁄ 字号 小 中 大 ⁄ 评论关闭 Entity Framework...
  • adenfeng
  • adenfeng
  • 2014年11月30日 12:24
  • 1962
收藏助手
不良信息举报
您举报文章:Entity Framework 增删改查和事务操作
举报原因:
原因补充:

(最多只允许输入30个字)