LINQ系列:LINQ to SQL Select查询

using (NorthwindContext context = new NorthwindContext())
{
    var expr = context.Products;

    foreach (var item in expr)
    {
        Console.WriteLine(item.ProductName);
    }
}
SELECT
    [Extent1].[ProductID] AS [ProductID],
    [Extent1].[CategoryID] AS [CategoryID],
    [Extent1].[ProductName] AS [ProductName],
    [Extent1].[UnitPrice] AS [UnitPrice],
    [Extent1].[Discontinued] AS [Discontinued]
    FROM [dbo].[Product] AS [Extent1]

2. 查询指定字段

var expr = context.Products
    .Select(p => new { p.ProductID, p.ProductName });
var expr = from p in context.Products
            select new { 商品ID = p.ProductID, 商品名称 = p.ProductName };

上述两种形式所生成的SQL是一样的。

SELECT
    [Extent1].[ProductID] AS [ProductID],
    [Extent1].[ProductName] AS [ProductName]
    FROM [dbo].[Product] AS [Extent1]

3. First/FirstOrDefault

var expr = context.Products.First();
SELECT TOP (1)
    [c].[ProductID] AS [ProductID],
    [c].[CategoryID] AS [CategoryID],
    [c].[ProductName] AS [ProductName],
    [c].[UnitPrice] AS [UnitPrice],
    [c].[Discontinued] AS [Discontinued]
    FROM [dbo].[Product] AS [c]

4. Single/SingleOrDefault

var expr = context.Products
    .SingleOrDefault(p => p.ProductID == 1);
SELECT TOP (2)
    [Extent1].[ProductID] AS [ProductID],
    [Extent1].[CategoryID] AS [CategoryID],
    [Extent1].[ProductName] AS [ProductName],
    [Extent1].[UnitPrice] AS [UnitPrice],
    [Extent1].[Discontinued] AS [Discontinued]
    FROM [dbo].[Product] AS [Extent1]
    WHERE 1 = [Extent1].[ProductID]
时间: 2024-12-28 11:55:19

LINQ系列:LINQ to SQL Select查询的相关文章

SQL语句优化系列三(关于select查询)

关于select查询 输出表中的所有列   select  *  from 表名 输出表中的部分列   select  字段名表 from 表名 为结果集内的列指定列名  select  {字段名1 [ as 列的别名]  [,-n]}  from 表名 消除取值重复的行,在select 后面紧跟 distinct 限制返回的行数    select  top 行数 列名表 from 表名 查询满足条件的元组  select  *  from 表名 where 查询条件 比较:列表达式1 比较运

数据库SQL SELECT查询的工作原理

作为B/S架构的开发人员,总是离不开数据库.一般开发员只会应用SQL的四条经典语句:select,insert,delete,update.但是我从来没有研究过它们的工作原理,这篇我想说一说select在数据库中的工作原理. B/S架构中最经典的话题无非于三层架构,可以大概分为数据层,业务逻辑层和表示层,而数据层的作用一般都是和数据库交互,例如查询记录.我们经常是写好查询SQL,然后调用程序执行SQL.但是它内部的工作流程是怎样的呢?先做哪一步,然后做哪一步等,我想还有大部分朋友和我一样都不一定

SQL select查询原理--查询语句执行原则<转>

1.单表查询:根据WHERE条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的):然后根据SELECT的选择列选择相应的列进行返回最终结果. 1)简单的单表查询 SELECT 字段 FROM 表名 WHERE 条件表达式 那它们是按什么顺序执行呢?分析器会先看语句的第一个词,当它发现第一个词是SELECT关键字的时候,它会跳到FROM关键字,然后通过FROM关键字找到表名并把表装入内存.接着是找WHERE关键字,如果找不到则返回到SELECT找字段解析,如果找到WHERE,则分析其中的条

JavaEE.sql.Select查询语句

SELECT语句 语法格式 //选择字段 SELECT column1, column2, ... FROM table_name; //全表 SELECT * FROM table_name; S1.全表查询 SELECT * FROM test_master S2.选择查询 SELECT id, userName, bindNo FROM test_master S3.连表查询 SELECT m.id, m.userName, m.bindNo, s.registerDate FROM te

[NHibernate]N+1 Select查询问题分析

目录 写在前面 文档与系列文章 N+1 Select查询问题分析 总结 写在前面 在前面的文章(延迟加载,立即加载)中都提到了N+1 Select的问题,总觉得理解的很不到位,也请大家原谅,这也是为什么单独将该问题拿出来做分析的原因.nhibernate的默认Lazy加载方式是解决N+1 select问题的一种方案,而我自身的理解是立即加载可以解决,完全的背道而驰了.写出那篇文章后,对这个问题,一直念念不忘,总觉得哪地方不对劲.由于我对问题的理解很不透彻,也同样造成你的误解,真的很抱歉. 文档与

LINQ系列:LINQ to SQL Where条件

1. 单一条件查询 var expr = context.Products .Where(p => p.ProductName == "LINQ to SQL"); SELECT [Extent1].[ProductID] AS [ProductID], [Extent1].[CategoryID] AS [CategoryID], [Extent1].[ProductName] AS [ProductName], [Extent1].[UnitPrice] AS [UnitPr

LINQ之路 7:子查询、创建策略和数据转换

在前面的系列中,我们已经讨论了LINQ简单查询的大部分特性,了解了LINQ的支持计术和语法形式.至此,我们应该可以创建出大部分相对简单的LINQ查询.在本篇中,除了对前面的知识做个简单的总结,还会介绍几种创建更复杂查询的方式,让我们在面对更复杂的场景时也能轻松面对,包括:子查询.创建策略和数据转换. 子查询 在创建一个复杂的查询时,通常我们需要用到子查询.相信大家都记得SQL查询里的子查询,在创建LINQ查询时也是如此.在LINQ中,对于方法语法,一个子查询包含在另外一个查询的lambda表达式

一步一步学LINQ系列1---什么是LINQ?

一.本系列目标 1.理解LINQ: 2.能写得复杂的LINQ语句(比如:动态查询): 3.理解表达式树及相关概念: 4.熟练运用LINQ写出优美的代码(希望一起努力,最终达到): 二.LINQ为何物?   LINQ之争的销烟已经退去,如今,LINQ已经成为C#开发人必备技术之一.很多人用它写出了优美的代码,它已经成为处理数据的一种全新开发方式,这也许是你选择.NET作为开发平台的福利之一.越来越多的开源库.框架都大量地使用LINQ.不管是出于提高自身技能还是读懂别人的代码,它都得是被你我拿下的一

Linq之Linq to Sql

目录 写在前面 系列文章 Linq to sql 总结 写在前面 上篇文章介绍了linq to xml的相关内容,linq to xml提供一种更便捷的创建xml树,及查询的途径.这篇文章将继续介绍linq to sql的内容.个人觉得linq to sql在实际开发中在中小型项目中用的比较多,在中小型项目用ef或者nhibernate这些orm确实有点重量级.Linq to Sql提供了丰富的功能,完全可以满足日常数据访问的需求.使用方法也非常简单.灵活. 系列文章 Linq之Lambda表达