zoukankan      html  css  js  c++  java
  • Entity Framework常用方法及案例

    ⒈Skip(int count)

      说明:跳过集合的前n个元素;延迟。即我们跳过给定的数目返回后面的结果集。

    ⒉Take(int count)

      说明:获取集合的前n个元素;延迟。即只返回限定数量的结果集。

    案例:分页查询

    1         public IList<StudentScore> test1(int pageSize,int pageIndex)
    2         {
    3             //skip表示跳过多少条,Take表示取多少条
    4             var list = _db.StudentScore.Skip(pageSize * (pageIndex - 1)).Take(pageSize).ToList();
    5             return list;
    6         }

    ⒊OrderBy

    说明:按指定表达式对集合排序;延迟,默认是升序,加上descending表示降序,对应的扩展方法是 OrderBy和OrderByDescending

    1         public IList<StudentScore> test2()
    2         {
    3             var list = _db.StudentScore.OrderBy(s => s.Id).ToList();
    4             var list2 = _db.StudentScore.OrderByDescending(s => s.Id).ToList();
    5             return list;
    6         }

    ⒋Add

    说明:添加一个实体

    1         public int test4()
    2         {
    3             var student = new Student {SName = "fanqi",SSex = 1,SBirthday = new DateTime(1994,6,24) };
    4             var add = _db.Student.Add(student);
    5             _db.SaveChanges();
    6             return add.Entity.Id;
    7         }

    ⒌Remove

    说明:删除一个实体

     1         public void test5()
     2         {
     3             _db.Remove(new Student { Id = 9 });
     4             _db.SaveChanges();
     5 
     6             //Student user = new Student(){ Id = 9};
     7             //将对象添加到EF管理容器
     8             //_db.Student.Attach(user);
     9             //将对象包装类的标识状态变更为删除状态
    10             //_db.Student.Remove(user);
    11             //通知上下文将实体的变化保存到数据库中
    12             //_db.SaveChanges();
    13         }

     ⒍Update

    说明:更新一个实体

     1         public void test6()
     2         {
     3             Student student = _db.Student.FirstOrDefault(f => f.Id == 7);
     4             student.SName = "fanqi";
     5             _db.Student.Update(student);
     6             _db.SaveChanges();
     7 
     8             //声明一个实体对象并赋初始值
     9             //Student student = new Student { Id = 8, SName = "fanqi" };
    10             //将实体对象加入到EF对象容器中,并获取伪包装类对象
    11             //EntityEntry<Student> entry = _db.Entry<Student>(student);
    12             //将包装类对象的状态设置为unchanged
    13             //entry.State = EntityState.Unchanged;
    14             //设置实体对象被改变的属性
    15             //entry.Property(a => a.SName).IsModified = true;
    16             //通知上下文将实体的变化保存到数据库中
    17             //_db.SaveChanges();
    18         }

    ⒎Join

    说明:内连接

     1         public dynamic test7()
     2         {
     3             var studentList = _db.Student;
     4             var scoreList = _db.StudentScore;
     5             var newList = studentList.Join(scoreList, stu => stu.Id, sco => sco.SId, (stu, sco) => new
     6             {
     7                 studentId = stu.Id,
     8                 studentName = stu.SName,
     9                 studentSex = stu.SSex == 1?"":"",
    10                 scoreId = sco.Id,
    11                 courseId = sco.CId,
    12                 courseScoreNum = sco.Score
    13             });
    14             return newList;
    15         }

    ⒏GroupJoin

    说明:左连接

     1         public dynamic test8()
     2         {
     3             var studentList = _db.Student;
     4             var scoreList = _db.StudentScore;
     5 
     6             var newList = studentList.GroupJoin(scoreList, stu => stu.Id, sco => sco.SId, (stu, sco) => new
     7             {
     8                 studentId = stu.Id,
     9                 studentName = stu.SName,
    10                 studentSex = stu.SSex == 1 ? "" : "",
    11                 sco
    12             });
    13             return newList;
    14         }
  • 相关阅读:
    tomcat 7服务器跨域问题解决
    logstash 改变行分割符
    logstash 编码转换默认UTF8
    GIT常用命令
    GIT常用命令
    GIT常用命令
    介绍开发流程以及相关技术
    介绍开发流程以及相关技术
    介绍开发流程以及相关技术
    介绍开发流程以及相关技术
  • 原文地址:https://www.cnblogs.com/fanqisoft/p/10811503.html
Copyright © 2011-2022 走看看