Entity Framework常用方法及案例
⒈Skip(int count)
说明:跳过集合的前n个元素;延迟。即我们跳过给定的数目返回后面的结果集。
⒉Take(int count)
说明:获取集合的前n个元素;延迟。即只返回限定数量的结果集。
案例:分页查询
public IList<StudentScore> test1(int pageSize,int pageIndex)
{
//skip表示跳过多少条,Take表示取多少条
var list = _db.StudentScore.Skip(pageSize * (pageIndex - )).Take(pageSize).ToList();
return list;
}
⒊OrderBy
说明:按指定表达式对集合排序;延迟,默认是升序,加上descending表示降序,对应的扩展方法是 OrderBy和OrderByDescending
public IList<StudentScore> test2()
{
var list = _db.StudentScore.OrderBy(s => s.Id).ToList();
var list2 = _db.StudentScore.OrderByDescending(s => s.Id).ToList();
return list;
}
⒋Add
说明:添加一个实体
public int test4()
{
var student = new Student {SName = "fanqi",SSex = ,SBirthday = new DateTime(,,) };
var add = _db.Student.Add(student);
_db.SaveChanges();
return add.Entity.Id;
}
⒌Remove
说明:删除一个实体
public void test5()
{
_db.Remove(new Student { Id = });
_db.SaveChanges(); //Student user = new Student(){ Id = 9};
//将对象添加到EF管理容器
//_db.Student.Attach(user);
//将对象包装类的标识状态变更为删除状态
//_db.Student.Remove(user);
//通知上下文将实体的变化保存到数据库中
//_db.SaveChanges();
}
⒍Update
说明:更新一个实体
public void test6()
{
Student student = _db.Student.FirstOrDefault(f => f.Id == );
student.SName = "fanqi";
_db.Student.Update(student);
_db.SaveChanges(); //声明一个实体对象并赋初始值
//Student student = new Student { Id = 8, SName = "fanqi" };
//将实体对象加入到EF对象容器中,并获取伪包装类对象
//EntityEntry<Student> entry = _db.Entry<Student>(student);
//将包装类对象的状态设置为unchanged
//entry.State = EntityState.Unchanged;
//设置实体对象被改变的属性
//entry.Property(a => a.SName).IsModified = true;
//通知上下文将实体的变化保存到数据库中
//_db.SaveChanges();
}
⒎Join
说明:内连接
public dynamic test7()
{
var studentList = _db.Student;
var scoreList = _db.StudentScore;
var newList = studentList.Join(scoreList, stu => stu.Id, sco => sco.SId, (stu, sco) => new
{
studentId = stu.Id,
studentName = stu.SName,
studentSex = stu.SSex == ?"男":"女",
scoreId = sco.Id,
courseId = sco.CId,
courseScoreNum = sco.Score
});
return newList;
}
⒏GroupJoin
说明:左连接
public dynamic test8()
{
var studentList = _db.Student;
var scoreList = _db.StudentScore; var newList = studentList.GroupJoin(scoreList, stu => stu.Id, sco => sco.SId, (stu, sco) => new
{
studentId = stu.Id,
studentName = stu.SName,
studentSex = stu.SSex == ? "男" : "女",
sco
});
return newList;
}
Entity Framework常用方法及案例的更多相关文章
- Code First :使用Entity. Framework编程(7) ----转发 收藏
第7章 高级概念 The Code First modeling functionality that you have seen so far should be enough to get you ...
- Programming Entity Framework 翻译(2)-目录2-章节
How This Book Is Organized 本书组织结构 Programming Entity Framework, Second Edition, focuses on two ways ...
- Programming Entity Framework 翻译(1)-目录
1. Introducing the ADO.NET Entity Framework ado.net entity framework 介绍 1 The Entity Relationship Mo ...
- Entity Framework 实体框架的形成之旅--为基础类库接口增加单元测试,对基类接口进行正确性校验(10)
本篇介绍Entity Framework 实体框架的文章已经到了第十篇了,对实体框架的各个分层以及基类的封装管理,已经臻于完善,为了方便对基类接口的正确性校验,以及方便对以后完善或扩展接口进行回归测试 ...
- Code First :使用Entity. Framework编程(2) ----转发 收藏
第二章:Code First概览 如果你使用第一.二版的EF框架工作过,你会回想起书中的业务案例:Break Away Geek Adventures, 简称BAGA.BAGA共享了很多像我们这样的奇 ...
- Code First :使用Entity. Framework编程(1) ----转发 收藏
这个是在学习EF CodeFirst时发现的,对于初学者还是不错的.果断转发,方便自己以后查阅和学习. 对于学习Code First 这个教程讲解的还是很详细. 第一章:欢迎来到Code First ...
- Working with Data » 使用Visual Studio开发ASP.NET Core MVC and Entity Framework Core初学者教程
原文地址:https://docs.asp.net/en/latest/data/ef-mvc/intro.html The Contoso University sample web applica ...
- .NET Entity Framework入门简介及简单操作
Entity Framework是微软借鉴ORM思想开发自己的一个ORM框架. ORM就是将数据库表与实体对象(相当于三层中的Model类)相互映射的一种思想. 最大的优点就是非常方便的跨数据库平台. ...
- 在Apworks数据服务中使用基于Entity Framework Core的仓储(Repository)实现
<在ASP.NET Core中使用Apworks快速开发数据服务>一文中,我介绍了如何使用Apworks框架的数据服务来快速构建用于查询和管理数据模型的RESTful API,通过该文的介 ...
随机推荐
- luoguP2863 [USACO06JAN]牛的舞会The Cow Prom
P2863 [USACO06JAN]牛的舞会The Cow Prom 123通过 221提交 题目提供者 洛谷OnlineJudge 标签 USACO 2006 云端 难度 普及+/提高 时空限制 1 ...
- 2019牛客暑期多校训练营(第二场)E 线段树维护dp转移矩阵
题意 给一个\(n\times m\)的01矩阵,1代表有墙,否则没有,每一步可以从\(b[i][j]\)走到\(b[i+1][j]\),\(b[i][j-1]\),\(b[i][j+1]\),有两种 ...
- java中如何根据函数查询引用的jar包
选中函数,按Ctrl+Shift+T,就可以弹出对应的jar包地址 例如:
- numpy中np.linalg.norm()求向量、矩阵的范数
np.linalg.norm() # linalg = linear(线性) + algebra(代数), norm表示范数 x_norm = np.linalg.norm(x, ord=None ...
- 深度学习笔记(十四)车道线检测 SCNN
论文:Spatial As Deep: Spatial CNN for Traffic Scene Understanding 代码:https://github.com/XingangPan/SCN ...
- 排序学习(learning to rank)中的ranknet pytorch简单实现
一.理论部分 理论部分网上有许多,自己也简单的整理了一份,这几天会贴在这里,先把代码贴出,后续会优化一些写法,这里将训练数据写成dataset,dataloader样式. 排序学习所需的训练样本格式如 ...
- Servlet——理解会话Session
1.什么是会话(Session) 超文本传输协议(HTTP)被设计成一种无状态的协议. 所谓无状态协议就是指在服务器端的请求彼此相互之间是不认识彼此的,哪怕是来自同一个客户端的请求,相互之间也是不认识 ...
- SQL Server分页的存储过程写法以及性能比较
------创建数据库data_Test ----- create database data_Test GO use data_Test GO create table tb_TestTable - ...
- GDAL OGR Tools
OGR2OGR ogr2ogr 使用文档 1. GeoJSON 转换 ShapeFile ogr2ogr -nlt POLYGON -skipfailures ground.shp ground.js ...
- 依赖注入框架之butterknife
主页: https://github.com/JakeWharton/butterknife 用途: 主要用来简化各种初始化控件的操作 配置: 1. 在app/build.gradle文件中depen ...