总结 jion,group join 基于方法的查询与查询表达式 对比
数据源:

代码:
using (tempdbEntities context = new tempdbEntities())
{
#region 基于方法的查询
Console.WriteLine("基于方法的查询-Join:");
var queryFF = context.P.Join(context.S, p => p.PID, s => s.PID, (p, s) => new { p.PNAME, s.SNAME });
queryFF.ToList().ForEach(x => { Console.WriteLine("{0} - {1}", x.PNAME, x.SNAME); });
Console.WriteLine("数量:" + queryFF.Count()); Console.WriteLine("基于方法的查询-GroupJoin:");
var queryFF2 = context.P.GroupJoin(context.S, p => p.PID, s => s.PID, (p, s) => new { p.PNAME, count = s.Count() });
queryFF2.ToList().ForEach(x => { Console.WriteLine("{0} - {1}", x.PNAME, x.count); });
Console.WriteLine("数量:" + queryFF2.Count());
#endregion #region 查询表达式
Console.WriteLine("查询表达式-无into:");
var queryCX = from p in context.P join s in context.S on p.PID equals s.PID select new { p.PNAME, s.SNAME };
queryCX.ToList().ForEach(x => { Console.WriteLine("{0} - {1}", x.PNAME, x.SNAME); });
Console.WriteLine("数量:" + queryCX.Count()); Console.WriteLine("查询表达式-有into:");
var queryCX2 = from p in context.P join s in context.S on p.PID equals s.PID into ps from psTable in ps.DefaultIfEmpty() select new { p.PNAME, psTable.SNAME };
queryCX2.ToList().ForEach(x => { Console.WriteLine("{0} - {1}", x.PNAME, x.SNAME); });
Console.WriteLine("数量:" + queryCX2.Count());
#endregion Console.ReadLine();
}
结果:

总结 jion,group join 基于方法的查询与查询表达式 对比的更多相关文章
- Entity Framework 基于方法的查询语法
实体框架(Entity Framework )是 ADO.NET 中的一套支持开发面向数据的软件应用程序的技术. LINQ to Entities 提供语言集成查询 (LINQ) 支持,它允许开发 ...
- EF基于方法的查询语法
实体框架(Entity Framework )是 ADO.NET 中的一套支持开发面向数据的软件应用程序的技术. LINQ to Entities 提供语言集成查询 (LINQ) 支持,它允许开发人员 ...
- MVC中使用Entity Framework 基于方法的查询学习笔记 (一)
EF中基于方法的查询方式不同于LINQ和以往的ADO.NET,正因为如此,有必要深入学习一下啦.闲话不多说,现在开始一个MVC项目,在项目中临床学习. 创建MVC项目 1.“文件”--“新建项目”-- ...
- python 全栈开发,Day74(基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询)
昨日内容回顾 # 一对多的添加方式1(推荐) # book=Book.objects.create(title="水浒传",price=100,pub_date="164 ...
- {django模型层(二)多表操作}一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询、分组查询、F查询和Q查询
Django基础五之django模型层(二)多表操作 本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 xxx 七 ...
- (转)python 全栈开发,Day74(基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询)
昨日内容回顾 # 一对多的添加方式1(推荐) # book=Book.objects.create(title="水浒传",price=100,pub_date="164 ...
- Django基础(5) ----基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询
一.基于双下划线的跨表查询 Django 还提供了一种直观而高效的方式在查询(lookups)中表示关联关系,它能自动确认 SQL JOIN 联系.要做跨关系查询,就使用两个下划线来链接模型(mode ...
- EF INNER JOIN,LEFT JOIN,GROUP JOIN
IQueryable<TOuter>的扩展方法中提供了 INNER JOIN,GROUP JOIN但是没有提供LEFT JOIN GROUP JOIN适用于一对多的场景,如果关联的GROU ...
- Linq中join & group join & left join 的用法
Linq中join & group join & left join 的用法 2013-01-30 11:12 12154人阅读 评论(0) 收藏 举报 分类: C#(14) 文章 ...
随机推荐
- k线、指标绘制
我接触的绘制有两种:gdi+和qt绘图.可以灵活的绘制任何想要的东西. 先上效果图吧. 如下:基于gdi+的股指和股票的绘制.上面是沪深成分股实时生成的股票指数走势,下面是IF主力走势和开平仓位置. ...
- python之pandas简介
一. Pandas简介 1.Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和 ...
- Java对象构成所有Java应用程序的基础
通过在优锐课的ange交流下,掌握了很多编程思想方法 特来分享 对象具有状态和行为 Java中的对象以及其他任何``面向对象''语言都是所有Java应用程序的基本组成部分,代表了你可能在你周围找到的任 ...
- OpenCV——仿射变换
什么是仿射变换? 一个任意的仿射变换都能表示为 乘以一个矩阵 (线性变换) 接着再 加上一个向量 (平移). 综上所述, 我们能够用仿射变换来表示: 旋转 (线性变换) 平移 (向量加) 缩放操作 ( ...
- python前后台交互相关配置
全局配置:全局样式.配置文件 在js下创建setting.js ,配置全局的settings.js import settings from '@/assets/js/settings' Vue.pr ...
- 题解【CJOJ1071/UVA】硬币问题
P1071 - [Uva]硬币问题 Description 有n种硬币,面值分别为v1, v2, ..., vn,每种都有无限多.给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目 ...
- JavaWeb项目中的Servlet
1.创建Servlet 2.在jsp中用ajax调用 $.post("<%=request.getContextPath()%>/AjaxValidationServlet&qu ...
- C. Polygon for the Angle 几何数学
C. Polygon for the Angle 几何数学 题意 给出一个度数 ,问可以实现的最小的n的n边形是多少 思路 由n边形的外角和是180度直接就可以算出最小的角是多少 如果给出的度数是其最 ...
- Django_Setings
""" Django settings for untitled1 project. Generated by 'django-admin startproject' u ...
- Go_Redis
Redis介绍 Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上.除此之外,通过复制.持久化和客户端分片等特性,我们可以 ...