EF的处理过程,和简单的增删改查

EF框架的处理过程 

/// <summary>
        /// 这个按钮控制的是增添数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Button1_Click(object sender, EventArgs e)
        {
 
                studentInfo studentInfo = new studentInfo();
                studentInfo.stuName = "杰尼龟";
                studentInfo.stuGender = true;
                studentInfo.stuAge = 12;
                studentInfo.stuPwd = "123";
                //1.起到一个桥梁的作用,让这个映射的类来执行一系列对数据库的操作
                testMISEntities db = new testMISEntities();
                //2.将数据添加到EF并添加了标记
                db.studentInfo.Add(studentInfo);
                //3.执行到db.SaveChanges();数据才会保存到数据库,并返回受影响的函数
                db.SaveChanges();

                //上面这些代码读取xml的映射关系

                //可以读取studenInfo的id
                Response.Write(studentInfo.stuId);
        }

        /// <summary>
        /// 这个按钮是查询语句(内容写死了)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Select_Click(object sender, EventArgs e)
        {
            testMISEntities db = new testMISEntities();
            //linq表达式
            //这个var实际上是IQueryable<studentInfo>,为了不那么麻烦所以用了var代替
            //结果不是单单一个,所以是个泛型集合
            var studentInfoList = from u in db.studentInfo
                               where u.stuId == 1
                               select u;
            foreach (var studentInfo in studentInfoList)
                //延迟加载机制:数据用到的时候才去数据库中查询
                //这个var其实就是
            {
                Response.Write(studentInfo.stuName);
            }
            //对于上诉linq表达式的解析
            //select * from userInfo where stuId=3;
            //from studentInfo
            //where stuId==3
            //select *

        }

        protected void Delete_Click(object sender, EventArgs e)
        {
            testMISEntities db = new testMISEntities();
            var studentInfoList = from u in db.studentInfo
                                  where u.stuId == 3 
                                  select u;
            //1.FirstOrDefault()这个是返回序列中的第一个元素或默认值
            //默认值是null
            studentInfo stuInfo= studentInfoList.FirstOrDefault();
            //1.First()这个是返回序列中的第一个元素,为空时会抛异常
            studentInfo stuInfo2 = studentInfoList.First();
            //1.First()这个是返回序列中的唯一一个元素,不唯一时会抛异常
            studentInfo stuInfo3 = studentInfoList.SingleOrDefault();

            if (stuInfo != null)
            {
                
                db.studentInfo.Remove(stuInfo);
                //这个Remove方法得先找到这个元素(stuInfo),也就是第1步的.First()方法
                //打上一个删除标记,并未直接删除,还需调用saveChanges()方法

                db.Entry<studentInfo>(stuInfo).State =
                    System.Data.EntityState.Deleted;
                //这个entry是直接找到了这个元素,并修改状态   
                //也是打上一个删除标记,并未直接删除,还需调用saveChanges()方法
                db.SaveChanges();
                Response.Write("删除成功!!");
            }
            else
            {
                Response.Write("要删除的数据不存在!!");
            }
        }

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Adoul_Click(object sender, EventArgs e)
        {
            testMISEntities db = new testMISEntities();
            var stuInfoList = from u in db.studentInfo
                          where u.stuId == 3
                          select u;
            var stuInfo = stuInfoList.FirstOrDefault();
            stuInfo.stuName = "胡迪";
            db.Entry<studentInfo>(stuInfo).State = System.Data.EntityState.Modified;//状态变为修改
            db.SaveChanges();
            Response.Write("修改成功");
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值