EF框架下得增删改

EF框架下如何进行增删改

环境搭建

  • 创建数据库TestDB(名称可以自取,不做要求)
  • 在数据库中创建表格ClassInfos(该表格的字段下面有图参考,表格名称可以自取,不做要求)
  • 在表中添加数据
    在这里插入图片描述
  • 创建.net MVC 项目,并在Controllers文件夹下创建控制器(以表名命名,不要加s)

增删改语法

  • 新增
    方式一:db.表名.Add(obj);db.SavaChanges();
    方式二:db.Entry(obj).State=EntryState.Added;db.SavaChanges();

  • 批量新增
    方式一:db.表名.AddRange(obj);db.SavaChanges();

  • 修改
    方式一:var obj=db.表名.Find(ID);obj.属性=“值”;db.SavaChanges();
    方式二:db.Entry(obj).State=EntryState.Modified;db.SavaChanges();

  • 删除
    方式一:var obj=db.表名.Find(ID);db.表名.Remove(obj);db.SavaChanges();
    方式二:db.Entry(obj).State=EntryState.Deleted;db.SavaChanges();

  • 批量删除
    方式一:var obj=db.表名.Find(ID);db.表名.RemoveRange(obj);db.SavaChanges();

举例说明

(这个通过.net MVC 框架)
(复制代码是测试时,不要全部一起复制,这样会报错的,应该单一测试学习。)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebApplication1.Models;//这里记住引入命名空间
using System.Data.Entity;//同上

namespace WebApplication1.Controllers
{
    public class ClassInfoController : Controller
    {
        // GET: ClassInfo
        TestDB6Entities db = new TestDB6Entities();
        public ActionResult Index()
        {
            var classinfo = new ClassInfo()
            {
                Name="2018173807",
                  Remark="七班",
                   TeacherID=1,
                    Term=1
            };
            db.ClassInfos.Add(classinfo);
            db.Entry(classinfo).State = EntityState.Added;

            //批量新增
            List<ClassInfo> classInfos = new List<ClassInfo>()
            {
                new ClassInfo()
                {
                  Name="2018173801",
                  Remark="一班",
                  TeacherID=1,
                  Term=1
                },
                 new ClassInfo()
               {
                  Name="2018173802",
                  Remark="二班",
                  TeacherID=1,
                  Term=1
                },
            };
            db.ClassInfos.AddRange(classInfos);
            db.SaveChanges();

            //修改的两种方式
            //    一,先查询在修改,修改某个属性,不会影响其他属性的变化
            var classinfo = new ClassInfo()
            {
                ID=4,
                Remark = "七班"
            };
            db.Entry(classinfo).State = EntityState.Modified;
            db.SaveChanges();
            //    二,new对象,将对象的状态,改为修改状态,这样,可能将其他属性设置为空
            var classInfos = db.ClassInfos.Find(3);
            classInfos.Remark = "四班";
            db.SaveChanges();

            //删除2种方式
            //一:
            var classinfo = new ClassInfo()
            {
                ID = 4
            };
            db.Entry(classinfo).State = EntityState.Deleted;
            //二:
            var classInfos = db.ClassInfos.Find(3);
            db.ClassInfos.Remove(classInfos);
            db.SaveChanges();

            //批量删除
            //一:
            var classinfos = db.ClassInfos.Where(p => p.Remark == "四班").ToList();
            foreach (var item in classinfos)
            {
                db.ClassInfos.Remove(item);
            }
            //二:
            List<ClassInfo> classInfos=db.ClassInfos.Where(p => p.Remark == "四班").ToList();
             db.ClassInfos.RemoveRange(classInfos);
             db.SaveChanges();

            //查询
            //精准查询,查询班级为2018173806
            var classinfos = db.ClassInfos.Where(p => p.Name == "2018173806").ToList();
            //模糊查询 查询班级有2018
            var classinfos1 = db.ClassInfos.Where(p => p.Name.Contains("2018")).ToList();
            //组合查询,查询学期为1,且教师也是1
            var classinfos2 = db.ClassInfos.Where(p => p.Term==1&&p.TeacherID==1).ToList();
            //组合查询,查询学期为2 或者教师为2
            var classinfos3 = db.ClassInfos.Where(p => p.Term == 1 || p.TeacherID == 1).ToList();


            //总结
            //新增
            //方式一:db.表名.Add(obj);db.SavaChanges();
            //方式二:db.Entry(obj).State=EntryState.Added;db.SavaChanges();
            //批量新增
            //方式一:db.表名.AddRange(obj);db.SavaChanges();
            //修改
            //方式一:var obj=db.表名.Find(ID);obj.属性="值";db.SavaChanges();
            //方式二:db.Entry(obj).State=EntryState.Modified;db.SavaChanges();
            //删除
            //方式一:var obj=db.表名.Find(ID);db.表名.Remove(obj);db.SavaChanges();
            //方式二:db.Entry(obj).State=EntryState.Deleted;db.SavaChanges();
            //批量删除
            //方式一:var obj=db.表名.Find(ID);db.表名.RemoveRange(obj);db.SavaChanges();
            return View();
        }
    }
}

以上代码运行时会出现以下出现找不到视图的错误,属于正常,因为没有创建视图,效果请到数据库表中查看数据是否有增删改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值