相关知识点复习:

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(一)的更多相关文章

  1. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  2. Entity Framework Core 1.1 升级通告

    原文地址:https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-entity-framework-core-1-1/ 翻译:杨晓东 ...

  3. Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制

    将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...

  4. 采用MiniProfiler监控EF与.NET MVC项目(Entity Framework 延伸系列1)

    前言 Entity Framework 延伸系列目录 今天来说说EF与MVC项目的性能检测和监控 首先,先介绍一下今天我们使用的工具吧. MiniProfiler~ 这个东西的介绍如下: MVC Mi ...

  5. 来,给Entity Framework热热身

    先来看一下Entity Framework缓慢的初始化速度给我们更新程序带来的一种痛苦. 我们手动更新程序时通常的操作步骤如下: 1)把Web服务器从负载均衡中摘下来 2)更新程序 3)预热(发出一个 ...

  6. 采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)

    前言 Entity Framework 延伸系列目录 今天我们来讲讲EntityFramework.Extended 首先科普一下这个EntityFramework.Extended是什么,如下: 这 ...

  7. Entity Framework教程(第二版)

    源起 很多年前刚毕业那阵写过一篇关于Entity Framework的文章,没发首页却得到100+的推荐.可能是当时Entity Framework刚刚发布介绍EF的文章比较少.一晃这么多年过去了,E ...

  8. Entity Framework 6 Recipes 2nd Edition 译 -> 目录 -持续更新

    因为看了<Entity Framework 6 Recipes 2nd Edition>这本书前面8章的翻译,感谢china_fucan. 从第九章开始,我是边看边译的,没有通读,加之英语 ...

  9. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点

    在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity ...

  10. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之目录导航

    ASP.NET MVC with Entity Framework and CSS是2016年出版的一本比较新的.关于ASP.NET MVC.EF以及CSS技术的图书,我将尝试着翻译本书以供日后查阅. ...

随机推荐

  1. 6.Netbackup-Oracle数据库恢复演练报告(下)

    1.1 Oracle数据库恢复  目录 1 安装新的客户端 2 新建异机恢复文件 3 新建数据库实例 4 建立spfile文件 5 建立数据文件夹 6 启动数据库到nomount状态 7 列出备份信息 ...

  2. BCB::TClientSocket,TServerSocket控件

    一,首先服务端开启监听 ServerSocket1->Port=StrToInt(5000); ServerSocket1->Active=true; ServerSocket1控件,响应 ...

  3. js判断移动端还是PC端

    function isMobile(){ var sUserAgent= navigator.userAgent.toLowerCase(), bIsIpad= sUserAgent.match(/i ...

  4. process launch failed: Security

    Xcode7/iOS9,真机测试的时候遇到这样的提示 通用-> 描述文件 -> 信任应用

  5. jquery 添加和删除节点

    // 增加一个三和一节点 function addPanel() { // var newPanel = $('.my-panel').clone(true) var newPanel = $(&qu ...

  6. java基础必备单词讲解 day six

    development development development development 开发 development developmentenvironment environment en ...

  7. Selenium页面加载策略

    https://blog.csdn.net/wkb342814892/article/details/81611737 https://blog.csdn.net/ouyanggengcheng/ar ...

  8. Linux进程通信之匿名管道

    进程间的通信方式 进程间的通信方式包括,管道.共享内存.信号.信号量.消息队列.套接字. 进程间通信的目的 进程间通信的主要目的是:数据传输.数据共享.事件通知.资源共享.进程控制等. 进程间通信之管 ...

  9. PHP关于 []

    在一个表格里,提交时,名字部分加一个[],表示数组,这样,存在多个同样名字的name.前面的value不会替代后面value,如下面 <td><input name="so ...

  10. PHP处理mysql事务

    MYSQL的事务处理主要有两种方法.1.用begin,rollback,commit来实现begin 开始一个事务rollback 事务回滚commit 事务确认2.直接用set来改变mysql的自动 ...