EF不同查询方法生成的SQL比较
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比较的更多相关文章
- Linq To EF 用泛型时生成的Sql会查询全表的问题
1.问题的现象 public class LinqHepler<T> where T:class { private EFDBContext _context = null; /// &l ...
- EF查询生成的SQL
在EF 4和EF 3.5 SP1中,我们可以使用ToTraceString()方法得到EF查询所生成的SQL. using (var context = new TestDBEntities()) { ...
- EF ( Entity Framework) 操作ArcCataLog 生成的(Sql Server)空间数据库
因为项目需求,现在需要利用EF 操作由Arccatalog生成的sql server空间数据库..在此之前,一直没有接触过空间数据库,在操作空间数据库时 绕了许多弯... 因此写一篇随笔做一个总结. ...
- 讨论过后而引发对EF 6.x和EF Core查询缓存的思考
前言 最近将RabbitMQ正式封装引入到.NET Core 2.0项目当中,之前从未接触过是个高大上的东东跟着老大学习中,其中收获不少,本打算再看看RabbitMQ有时间写写,回来后和何镇汐大哥探讨 ...
- .net core 利用日志查看ef生成的SQL语句
EF Core 没有直接提供像 EF6 那样方便的在日志中记录最终生成的 SQL 的功能,可以通过官方提供的日志记录(Microsoft.Extensions.Logging)实现. 一. 使用 Mi ...
- Entity Framework入门教程(7)--- EF中的查询方法
这里主要介绍两种查询方法 Linq to entity(L2E)和Sql 1.L2E查询 L2E查询时可以使用linq query语法,或者lambda表达式,默认返回的类型是IQueryable,( ...
- (25)ASP.NET Core EF查询(复杂查询运算符、原生SQL查询、异步查询)
1.复杂查询运算符 在生产场景中,我们经常用到LINQ运算符进行查询获取数据,现在我们就来了解下生产场景经常出现几种复杂查询运算符. 1.1联接(INNER JOIN) 借助LINQ Join运算符, ...
- .NET Core实用技巧(一)如何将EF Core生成的SQL语句显示在控制台中
目录 .NET Core实用技巧(一)如何将EF Core生成的SQL语句显示在控制台中 前言 笔者最近在开发和维护一个.NET Core项目,其中使用几个非常有意思的.NET Core相关的扩展,在 ...
- sql Server 查询方法的优化
在使用SQL语句查询数据库记录时,如果要查询相同的内容,有着不同的多种方法. 仍然,尽管使用多种方法可以得到相同的结果,但是,如果您使用不同的方法,在执行效益上是截然不同的.因此,我们得仔细考虑,如果 ...
随机推荐
- HDU 1242 (BFS搜索+优先队列)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1242 题目大意:多个起点到一个终点,普通点耗时1,特殊点耗时2,求到达终点的最少耗时. 解题思路: ...
- TV测试中的按键长按操作模拟
从UiAutomator在TV测试中的局限性说起: 智能TV的操作和手机的操作有很大不同,一般智能TV的操作为遥控器按键操作,来向TV OS发送 KeyCode,以完成指定操作. UiAutomat ...
- More about Tair (NoSql)
一.前言 关于Tair的相关介绍请参照wiki(http://code.taobao.org/p/tair/wiki/index/)或者之前的博文,不再重复描述.区别于其它主流NoSql数据库,Tai ...
- 解决Apache CXF 不支持传递java.sql.Timestamp和java.util.HashMap类型问题
在项目中使用Apache开源的Services Framework CXF来发布WebService,CXF能够很简洁与Spring Framework 集成在一起,在发布WebService的过程中 ...
- JS中的闭包的一些理解!
在日常的开发中,基本上是不会遇到关于闭包的这样,但是,因为在一些特殊的情况下,必须采用闭包,所以这里简单的概述下什么是闭包: OK!简而言之,闭包只是一个名词而已,我们更注重于他所实现的功能,也就是我 ...
- ARC指南3 - @property
本章介绍引入ARC后@property的使用,跟ARC之前的还是很不一样的 一..h和.m文件的变化说明 1.对于.h头文件,主要是将属性定义由retain变为strong @property ( ...
- Leetcode | substr()
求子串当然最经典的就是KMP算法了.brute force算法在leetcode上貌似也有一些技巧. brute force: char* StrStr(const char *str, const ...
- SecureCRT通过console口连接思科设备
- 【iCore3双核心板】扩展引脚分布
PDF 版下载: http://files.cnblogs.com/files/xiaomagee/iCore3%E6%89%A9%E5%B1%95%E5%BC%95%E8%84%9A%E5%88%8 ...
- HDU 2594 Simpsons’ Hidden Talents(KMP的Next数组应用)
Simpsons’ Hidden Talents Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java ...