var test1 = db.jj_RolesItem.Join(db.jj_SysItemsClass, m => m.ClassID, g => g.ClassID, (m, g) => new {m.RolesID,g.ClassName }).ToList();
var test2 = db.jj_RolesItem.Include(m => m.jj_SysItemsClass).Select(m => new {m.RolesID,m.jj_SysItemsClass.ClassName }).ToList();
var test3 = from p in db.jj_RolesItem join m in db.jj_SysItemsClass on p.ClassID equals m.ClassID select new { p.RolesID, m.ClassName };
test3.ToList();

前三条生成SQL语句相同

SELECT
[Extent1].[RolesID] AS [RolesID],
[Extent2].[ClassName] AS [ClassName]
FROM [dbo].[jj_RolesItem] AS [Extent1]
INNER JOIN [dbo].[jj_SysItemsClass] AS [Extent2] ON [Extent1].[ClassID] = [Extent2].[ClassID]

var test4 = db.jj_RolesItem.First().jj_SysItemsClass.ClassName;

上面这条分两步查询:

SELECT TOP ()
[c].[Roles_Class_ID] AS [Roles_Class_ID],
[c].[RolesID] AS [RolesID],
[c].[ClassID] AS [ClassID]
FROM [dbo].[jj_RolesItem] AS [c]
exec sp_executesql N'SELECT
[Extent1].[ClassID] AS [ClassID],
[Extent1].[ClassName] AS [ClassName],
[Extent1].[ParentID] AS [ParentID],
[Extent1].[ParentPath] AS [ParentPath],
[Extent1].[Depth] AS [Depth],
[Extent1].[Child] AS [Child],
[Extent1].[OrderID] AS [OrderID],
[Extent1].[Title] AS [Title],
[Extent1].[KeyWords] AS [KeyWords],
[Extent1].[Description] AS [Description],
[Extent1].[Content] AS [Content],
[Extent1].[ShowType] AS [ShowType],
[Extent1].[LinkUrl] AS [LinkUrl],
[Extent1].[Intro] AS [Intro],
[Extent1].[ClassPic] AS [ClassPic],
[Extent1].[ItemPic] AS [ItemPic],
[Extent1].[LanType] AS [LanType],
[Extent1].[IsHome] AS [IsHome]
FROM [dbo].[jj_SysItemsClass] AS [Extent1]
WHERE [Extent1].[ClassID] = @EntityKeyValue1',N'@EntityKeyValue1 int',@EntityKeyValue1=106

EF不同查询方法生成的SQL比较的更多相关文章

  1. Linq To EF 用泛型时生成的Sql会查询全表的问题

    1.问题的现象 public class LinqHepler<T> where T:class { private EFDBContext _context = null; /// &l ...

  2. EF查询生成的SQL

    在EF 4和EF 3.5 SP1中,我们可以使用ToTraceString()方法得到EF查询所生成的SQL. using (var context = new TestDBEntities()) { ...

  3. EF ( Entity Framework) 操作ArcCataLog 生成的(Sql Server)空间数据库

    因为项目需求,现在需要利用EF 操作由Arccatalog生成的sql server空间数据库..在此之前,一直没有接触过空间数据库,在操作空间数据库时 绕了许多弯... 因此写一篇随笔做一个总结. ...

  4. 讨论过后而引发对EF 6.x和EF Core查询缓存的思考

    前言 最近将RabbitMQ正式封装引入到.NET Core 2.0项目当中,之前从未接触过是个高大上的东东跟着老大学习中,其中收获不少,本打算再看看RabbitMQ有时间写写,回来后和何镇汐大哥探讨 ...

  5. .net core 利用日志查看ef生成的SQL语句

    EF Core 没有直接提供像 EF6 那样方便的在日志中记录最终生成的 SQL 的功能,可以通过官方提供的日志记录(Microsoft.Extensions.Logging)实现. 一. 使用 Mi ...

  6. Entity Framework入门教程(7)--- EF中的查询方法

    这里主要介绍两种查询方法 Linq to entity(L2E)和Sql 1.L2E查询 L2E查询时可以使用linq query语法,或者lambda表达式,默认返回的类型是IQueryable,( ...

  7. (25)ASP.NET Core EF查询(复杂查询运算符、原生SQL查询、异步查询)

    1.复杂查询运算符 在生产场景中,我们经常用到LINQ运算符进行查询获取数据,现在我们就来了解下生产场景经常出现几种复杂查询运算符. 1.1联接(INNER JOIN) 借助LINQ Join运算符, ...

  8. .NET Core实用技巧(一)如何将EF Core生成的SQL语句显示在控制台中

    目录 .NET Core实用技巧(一)如何将EF Core生成的SQL语句显示在控制台中 前言 笔者最近在开发和维护一个.NET Core项目,其中使用几个非常有意思的.NET Core相关的扩展,在 ...

  9. sql Server 查询方法的优化

    在使用SQL语句查询数据库记录时,如果要查询相同的内容,有着不同的多种方法. 仍然,尽管使用多种方法可以得到相同的结果,但是,如果您使用不同的方法,在执行效益上是截然不同的.因此,我们得仔细考虑,如果 ...

随机推荐

  1. BZOJ3547 : [ONTAK2010]Matchings

    树形DP f[i][0]表示不向下连边的最大匹配数 f[i][1]表示向下连一条边的最大匹配数 h[][]表示对应的方案数 为了防止爆栈用BFS 为了防止MLE: 1.数组循环利用,比如存边的数组在存 ...

  2. 关于adb驱动

    Android设备(如手机)连接PC时所需要的驱动程序,一般Android设备连接WinXP是无需安装驱动的. adb的全称为Android Debug Bridge,就是起到调试桥的作用.通过adb ...

  3. TYVJ 矩阵取数 Label:高精度+dp

    题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...

  4. COJ990 WZJ的数据结构(负十)

    DFS序(带入栈出栈标记): 对于一个节点,我们用L[i]和R[i]表示它入栈和出栈的时间.这样[L[i],R[i]]就表示了以i为根的区间. 我们还要将入栈的符号为+,出栈的符号为-,那么令V[i] ...

  5. Linux命令总结_文件查找之grep

    1.grep命令 grep一般格式为:grep [选项]基本正则表达式[文件]这里基本正则表达式可为字符串,字符串或变量应该用双引号,模式匹配用单引号 选项: -c  只输出匹配行的计数 -i  不区 ...

  6. [Delphi]Delphi开发的一些技巧

    一.提高查询效率先进行准备查询操作: CustomerQuery.Close; if not (CustomerQuery.Prepared) then -->查询是否已准备好 Customer ...

  7. 如何使用 Migration创建一个迁移

    切换到YII所在的目录 yii migrate/create test

  8. [ZZ] D3D中的模板缓存(3)

    http://www.cppblog.com/lovedday/archive/2008/03/25/45334.html http://www.cppblog.com/lovedday/ D3D中的 ...

  9. SVN svnserve.conf: Option expected 的解决方法 以及 Authorization failed 的解决方法

    ① 在 CentOS 6.5 上安装配置了 SVN,在本地 Checkout 的时候报错: 显示:/www/svnroot/webfile/conf/svnserve.conf:12: Option ...

  10. Web前端开发:什么是页面重回(repaints)与回流(reflow)

    前言:什么是重绘与回流? 重绘(repaints)是一个元素外观的改变所触发的浏览器行为,例如改变vidibility.outline.背景色等属性.浏览器会根据元素的新属性重新绘制,使元素呈现新的外 ...