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技术的图书,我将尝试着翻译本书以供日后查阅. ...
随机推荐
- matlab中padarray函数在numpy、python中的实现
a = np.arange(6) a = a.reshape((2, 3)) print np.lib.pad(a, 1, 'symmetric') 运行结果: [[ ] [ ] [ ] [ ]]
- (jdbc和cmd)sqlite数据迁入mysql(导入导出)
从sqlite进行导出数据 进行cmd命令 第一步:sqlite3->.open [文件路径](打开连接)->.tables(这个是查看表是否有没有)->.cd [切换的盘符](这里 ...
- Miller rabin
蛤蛤,终于基本上搞懂了 #include<iostream> #include<cstdio> using namespace std; long long num[10]={ ...
- nginx+php-fpm结构模型剖析及优化(转载)
一.nginx和php-fpm的关系和分工 nginx是web服务器,php-fpm是一个PHPFastCGI进程管理器,两者遵循fastcgi的协议进行通信,nginx负责静态类似html文件的处理 ...
- Linux下vim操作的一些使用技巧
以下均为个人在编程时对vim编辑器的一些心得,大神请指点,新手可以看过来 1.多文本编辑 vim -On/-on filename_1 … filename_n 如上所示,在要编辑的文件名前加上“-O ...
- React路由-基础篇
React-Router-DOM ReactRouter网址, 安装 -npmjs找到react-router-dom -yarn add react-router-dom 基本使用方法 1.创建一个 ...
- PHPExcel 中文使用手册详解
/** * * execl数据导出 * 应用场景:订单导出 * @param string $title 模型名(如Member),用于导出生成文件名的前缀 * @param array $cellN ...
- POJ 1854 贪心(分治)
Evil Straw Warts Live Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 1144 Accepted: ...
- 笔记-爬虫-XPATH
笔记-爬虫-XPATH 1. xpath XPath是W3C的一个标准.它最主要的目的是为了在XML1.0或XML1.1文档节点树中定位节点所设计.目前有XPath1.0和XPath2.0两 ...
- 【UE4】二十三、UE4笔试面试题
在CSDN博客看到的,带着这些问题,多多留意,正所谓带着问题学习. 一. 1.Actor的EndPlay事件在哪些时候会调用? 2.BlueprintImplementableEvent和Bluepr ...