数据源:

代码:

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 基于方法的查询与查询表达式 对比的更多相关文章

  1. Entity Framework 基于方法的查询语法

      实体框架(Entity Framework )是 ADO.NET 中的一套支持开发面向数据的软件应用程序的技术. LINQ to Entities 提供语言集成查询 (LINQ) 支持,它允许开发 ...

  2. EF基于方法的查询语法

    实体框架(Entity Framework )是 ADO.NET 中的一套支持开发面向数据的软件应用程序的技术. LINQ to Entities 提供语言集成查询 (LINQ) 支持,它允许开发人员 ...

  3. MVC中使用Entity Framework 基于方法的查询学习笔记 (一)

    EF中基于方法的查询方式不同于LINQ和以往的ADO.NET,正因为如此,有必要深入学习一下啦.闲话不多说,现在开始一个MVC项目,在项目中临床学习. 创建MVC项目 1.“文件”--“新建项目”-- ...

  4. python 全栈开发,Day74(基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询)

    昨日内容回顾 # 一对多的添加方式1(推荐) # book=Book.objects.create(title="水浒传",price=100,pub_date="164 ...

  5. {django模型层(二)多表操作}一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询、分组查询、F查询和Q查询

    Django基础五之django模型层(二)多表操作 本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 xxx 七 ...

  6. (转)python 全栈开发,Day74(基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询)

    昨日内容回顾 # 一对多的添加方式1(推荐) # book=Book.objects.create(title="水浒传",price=100,pub_date="164 ...

  7. Django基础(5) ----基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询

    一.基于双下划线的跨表查询 Django 还提供了一种直观而高效的方式在查询(lookups)中表示关联关系,它能自动确认 SQL JOIN 联系.要做跨关系查询,就使用两个下划线来链接模型(mode ...

  8. EF INNER JOIN,LEFT JOIN,GROUP JOIN

    IQueryable<TOuter>的扩展方法中提供了 INNER JOIN,GROUP JOIN但是没有提供LEFT JOIN GROUP JOIN适用于一对多的场景,如果关联的GROU ...

  9. Linq中join & group join & left join 的用法

    Linq中join & group join & left join 的用法 2013-01-30 11:12 12154人阅读 评论(0) 收藏 举报  分类: C#(14)  文章 ...

随机推荐

  1. k线、指标绘制

    我接触的绘制有两种:gdi+和qt绘图.可以灵活的绘制任何想要的东西. 先上效果图吧. 如下:基于gdi+的股指和股票的绘制.上面是沪深成分股实时生成的股票指数走势,下面是IF主力走势和开平仓位置. ...

  2. python之pandas简介

    一. Pandas简介 1.Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和 ...

  3. Java对象构成所有Java应用程序的基础

    通过在优锐课的ange交流下,掌握了很多编程思想方法 特来分享 对象具有状态和行为 Java中的对象以及其他任何``面向对象''语言都是所有Java应用程序的基本组成部分,代表了你可能在你周围找到的任 ...

  4. OpenCV——仿射变换

    什么是仿射变换? 一个任意的仿射变换都能表示为 乘以一个矩阵 (线性变换) 接着再 加上一个向量 (平移). 综上所述, 我们能够用仿射变换来表示: 旋转 (线性变换) 平移 (向量加) 缩放操作 ( ...

  5. python前后台交互相关配置

    全局配置:全局样式.配置文件 在js下创建setting.js ,配置全局的settings.js import settings from '@/assets/js/settings' Vue.pr ...

  6. 题解【CJOJ1071/UVA】硬币问题

    P1071 - [Uva]硬币问题 Description 有n种硬币,面值分别为v1, v2, ..., vn,每种都有无限多.给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目 ...

  7. JavaWeb项目中的Servlet

    1.创建Servlet 2.在jsp中用ajax调用 $.post("<%=request.getContextPath()%>/AjaxValidationServlet&qu ...

  8. C. Polygon for the Angle 几何数学

    C. Polygon for the Angle 几何数学 题意 给出一个度数 ,问可以实现的最小的n的n边形是多少 思路 由n边形的外角和是180度直接就可以算出最小的角是多少 如果给出的度数是其最 ...

  9. Django_Setings

    """ Django settings for untitled1 project. Generated by 'django-admin startproject' u ...

  10. Go_Redis

    Redis介绍 Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上.除此之外,通过复制.持久化和客户端分片等特性,我们可以 ...