Entity Framework(一)
相关知识点复习:
1、var 类型推断: var p=new Person();
2、匿名类型: var a=new {Name="wang",Age=12 };
3、给新创建的对象属性赋值的简化方法: var P=new Person{Name="wang" ,Age=12 } 等价于 Person p=new Person() ; p.Name="wang"; p.Age=12;
4、.NET高级扩展方法:
var s0 = new Person { Name = "wang", Age = , Salary = };
var s1 = new Person { Name = "chen", Age = , Salary = };
var s2 = new Person { Name = "li", Age = , Salary = };
var s3 = new Person { Name = "qian", Age = , Salary = };
var s4 = new Person { Name = "liu", Age = , Salary = };
var s5 = new Person { Name = "zhao", Age = , Salary = };
var s6 = new Person { Name = "sun", Age = , Salary = };
List<Person> ps = new List<Person>();
ps.Add(s0);
ps.Add(s2);
ps.Add(s3);
ps.Add(s6);
var teacher1 = new Teacher() { Name = "wang",Students = {s0,s1,s2 } };
var teacher2 = new Teacher() { Name = "li" , Students = { s3, s4, s5 } };
Teacher[] ts = { teacher1, teacher2 };
(1)Any() ,判断集合是否包含元素,返回值是bool,一般比Count()>0效率高,Any还可以指定条件表达式。bool b=list.Any(p=>p.Age>50) 等价于bool b=list.Where(p=>=.Age>50).Any();
Console.WriteLine(ps.Any(p=>p.Salary>));
(2) Distinct(),剔除完全重复的数据。(*)注意自定义对象的Equal问题,需要重写Equal和GetHashCode方法来进行内容比较
(3)排序: 升序 list.OrderBy(p=>p.Age); 降序 list.OrderByDiscending(p=>p.Age) . 指定多个排序规则,而不是多个OrderBy,而是:list.OrderByDiscending(p=>p.Age).ThenBy(p=>p.Salary),也支持ThenByDiscending()
var p1 = ps.OrderBy(p => p.Salary);
foreach (var p in p1)
{
Console.WriteLine("姓名:"+p.Name+"\n"+"薪水"+p.Salary);
}
(4) skip(n)跳过前n条数据;Take(n)获取最多n条数据,如果不足也不会报错,常用来分页获取数据。 List.Skip(3).Take(2) 跳过前3条数据获取2条数据
var p1 = ps.Skip().Take();
foreach (var p in p1)
{
Console.WriteLine("姓名:"+p.Name+"\n"+"薪水"+p.Salary);
}
(5)Except(item1) 排除当前集合中在item1中存在的元素;
int[] num1 = { , , , , };
int[] num2 = { , , , };
var num3 = num1.Except(num2);
foreach (var p in num3)
{
Console.WriteLine(p);
}
(6)Union(item1) 把当前集合和item1中组合;
int[] num1 = { , , , , };
int[] num2 = { , , , };
var num3 = num1.Union(num2);
foreach (var p in num3)
{
Console.WriteLine(p);
}
(7)Intersect(item1)把当前集合和item1中取交集
int[] num1 = { , , , , };
int[] num2 = { , , , };
var num3 = num1.Intersect(num2);
foreach (var p in num3)
{
Console.WriteLine(p);
}
(8) 分组:
foreach (var p in ps.GroupBy(g1=>g1.Gender))
{
Console.WriteLine(p.Key);
foreach (var p2 in p)
{
Console.WriteLine(p2);
}
} Console.ReadKey();
(9)SelectMany: 把集合中的每个对象的另外集合属性的值重新拼接为一个新的集合;
foreach (var s in ts.SelectMany(t=>t.Students))
{
Console.WriteLine(s); } Console.ReadKey();
Entity Framework(一)的更多相关文章
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- Entity Framework Core 1.1 升级通告
原文地址:https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-entity-framework-core-1-1/ 翻译:杨晓东 ...
- Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制
将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...
- 采用MiniProfiler监控EF与.NET MVC项目(Entity Framework 延伸系列1)
前言 Entity Framework 延伸系列目录 今天来说说EF与MVC项目的性能检测和监控 首先,先介绍一下今天我们使用的工具吧. MiniProfiler~ 这个东西的介绍如下: MVC Mi ...
- 来,给Entity Framework热热身
先来看一下Entity Framework缓慢的初始化速度给我们更新程序带来的一种痛苦. 我们手动更新程序时通常的操作步骤如下: 1)把Web服务器从负载均衡中摘下来 2)更新程序 3)预热(发出一个 ...
- 采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)
前言 Entity Framework 延伸系列目录 今天我们来讲讲EntityFramework.Extended 首先科普一下这个EntityFramework.Extended是什么,如下: 这 ...
- Entity Framework教程(第二版)
源起 很多年前刚毕业那阵写过一篇关于Entity Framework的文章,没发首页却得到100+的推荐.可能是当时Entity Framework刚刚发布介绍EF的文章比较少.一晃这么多年过去了,E ...
- Entity Framework 6 Recipes 2nd Edition 译 -> 目录 -持续更新
因为看了<Entity Framework 6 Recipes 2nd Edition>这本书前面8章的翻译,感谢china_fucan. 从第九章开始,我是边看边译的,没有通读,加之英语 ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点
在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之目录导航
ASP.NET MVC with Entity Framework and CSS是2016年出版的一本比较新的.关于ASP.NET MVC.EF以及CSS技术的图书,我将尝试着翻译本书以供日后查阅. ...
随机推荐
- POJ-2029 Get Many Persimmon Trees---二维树状数组+枚举
题目链接: https://vjudge.net/problem/POJ-2029 题目大意: 有N棵树在一个n*m的田里,给出每颗树的坐标 用一个s*t的矩形去围,最多能围几棵树 思路: 用二维树状 ...
- 1.1 NBU基本概念
1.1 NBU基本概念 1) Policy(备份策略) 备份策略定义一台或几台服务器的备份方法.它包括哪些服务器需要备份.备份哪些目录或文件.在什么时间备份.采用什么方式进行备份等.配置NBU主要指定 ...
- 2018.8.25 JVM
一.JVM内存区域 Java虚拟机在运行时,会把内存空间分为若干个区域,根据<Java虚拟机规范(Java SE 7 版)>的规定,Java虚拟机所管理的内存区域分为如下部分: 方法区 堆 ...
- centos7安装python3和ipython
CentOS7下默认系统自带python2.X的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3那么我们知道编译安装源码包和系统默认包之间是没有任何影响的,所以可以安装 ...
- 用dockers实现mysql主从同步
首先要先看看当前的mysql的版本是什么,可以通过下面命令查看 mysql --version 最好是安装在docker中的mysql和你宿主机器中的mysql版本一致. 我的是mysql5.7.22 ...
- Vue nodejs商城项目-项目概述
项目概况 用vue2.0 +node.js +MongonDB 做了一个商城系统 技术选型 Vue2.0+node.js+express+MongoDB+axios+vuex 构建工具 Webpack ...
- 1、webpack安装
1.局部安装: npm i -D (npm install --save-dev的简写) 安装指定版本:npm i -D webpack @version 安装最新版:npm i -D webpack ...
- Maven tomcat插件 远程发布【Learn】
Tomcat配置修改: ①.conf/tomcat-users.xml <role rolename="manager-gui"/> <role rolename ...
- SpringMVC系列一
首先介绍一下SpringMVC的执行流程:如图 1.用户在客户端发送请求,经过前端控制器DispatcherServlet,请求处理器处理,返回ModelAndView返回结果到前端控制器: 2.前端 ...
- Linux nohup 关闭终端的时候,程序依然能在后台运行( linux重定向及nohup不输出的方法)
先说一下linux重定向: 0.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出.在一般使用时,默认的是标准输出,既1.当我们需要特殊用途时,可以使用其他标号 ...