看看下面的例子。我们的场景是,需要对客户表按照国家进行分组,然后打印出来每个国家的客户数目。

下面的语法看起来很优雅

using System;
using System.Linq;namespace ConsoleApplication1
{class Program{static void Main(string[] args){using (NorthwindDataContext context = new NorthwindDataContext()) {context.Log = Console.Out;var query = from c in context.Customersgroup c by c.Country;foreach (var item in query){Console.WriteLine(string.Format("国家:{0},客户总数:{1}",item.Key,item.Count()));foreach (var i in item){Console.WriteLine("\t" + i.CustomerID);}}}}}
}

但是,注意观察一下,每循环一个国家的时候,又会发起另外一个查询。这对于数据库服务器而言,是一个不小的压力

为了做改进,考虑到客户数据本身也不是很多,我们直接将需要的数据先读取到内存中,再用LINQ TO Object的方式对其进行出来岂不是更好

using System;
using System.Linq;namespace ConsoleApplication1
{class Program{static void Main(string[] args){using (NorthwindDataContext context = new NorthwindDataContext()) {context.Log = Console.Out;var customers = context.Customers.Select(c => new { c.CustomerID, c.Country }).ToArray();var query = from c in customersgroup c by c.Country;foreach (var item in query){Console.WriteLine(string.Format("国家:{0},客户总数:{1}", item.Key, item.Count()));foreach (var i in item){Console.WriteLine("\t" + i.CustomerID);}}}}}
}

 

转载于:https://www.cnblogs.com/chenxizhang/archive/2010/01/07/1641578.html

Linq TO SQL 虽好,但不要滥用相关推荐

  1. 如何查看Linq to SQL运行时,实际执行的Sql语句

    调试Linq to sql代码是, 如果遇到错误,很难判断错误的原因是什么,如果能够输出实际执行的sql原文,对于我们寻找错误的原因有有很大帮助. 以下是我用到的方法: StringBuilder s ...

  2. Linq to SQL 资源

    Scott Guthrie 的 Linq to SQL 系列: 1)介绍 http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to ...

  3. .NET 3.5(12) - DLINQ(LINQ to SQL)之事务处理和并发处理

    步步为营VS 2008 + .NET 3.5(12) - DLINQ(LINQ to SQL)之事务处理和并发处理 作者:webabcd 介绍 以Northwind为示例数据库,DLINQ(LINQ ...

  4. 一步一步学Linq to sql(六):探究特性

      延迟执行 IQueryable query = from c in ctx.Customers select c; 这样的查询句法不会导致语句立即执行,它仅仅是一个描述,对应一个SQL.仅仅在需要 ...

  5. LINQ to SQL 在 Visual Studio 2008 中的简单应用

    在.Net Framework 3.5 中,最激动人心的就是增加了LINQ功能,LINQ在数据集成的基础上提供了新的轻型方式.有了LINQ,我们创建的查询现在就编程了.Net 框架的一个成员,在对要操 ...

  6. 一步一步学Linq to sql(一):预备知识

    从今天起将推出新手讲堂,首先从linq开始详细讲解.一步一步学Linq to sql(一):预备知识 什么是Linq to sql Linq to sql(或者叫DLINQ)是LINQ(.NET语言集 ...

  7. 一步一步学linq to sql(四)查询句法

    select 描述:查询顾客的公司名.地址信息 查询句法: var 构建匿名类型1 = from c in ctx.Customers select new { 公司名 = c.CompanyName ...

  8. 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 1)

    在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 1) 在新的.Net Framework 3.5平台上,Microsoft发布了LINQ(C# 3.0, ...

  9. 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(Part5) 转

    设计开发表现层 表现层负责应用程序的用户界面,图4.1是表现层的详细视图,包括Web Forms, Web User Control, Code-Behind 和共享的用户界面代码.表现层负责推送信息 ...

  10. LINQ : 如何为LINQ TO SQL实现自定义业务逻辑

    LINQ TO SQL很好很强大,它几乎包含了我们能够想到的所有与数据库有关的操作,甚至也包含了一些我们可能都没有想到的. 但不管怎样,也许我们需要在LINQ TO SQL的操作中添加一个自定义业务逻 ...

最新文章

  1. 带您走进松本行弘的程序世界
  2. 神经网络中激活函数的真正意义?
  3. [android] setOnTouchEvent 设置返回值为true 和 false的区别
  4. 如何利用vw+rem进行移动端布局
  5. 一行上自动控制数据长度,并换行
  6. 对文件指定行进行编辑和保存 linux,linux 文本编辑命令grep sed awk(转)
  7. 【z】多线程Java Socket编程示例
  8. xilinx提供测试dma和fft在sdk端的代码
  9. win7家庭版计算机桌面,Win7 home basic家庭普通版显示桌面图标的方法
  10. MTK 修改ro.hardware 获取cpu 和固件版本号方法
  11. Vue使用Element UI插件
  12. 计算机管理能看到移动硬盘,无法识别移动硬盘并且不显示磁盘图标.
  13. Python属性使用@property和不使用@property的差别
  14. chrome 代理设置
  15. 计算机表格如何求和,excel表格怎么求和? excel自动求和的三种方法
  16. 综合布线系统带宽与计算机网络带宽计算题,计算机网络思考与练习题.doc
  17. 中文关键词提取tfidf算法改进bsaeline
  18. 如何评估前端开发周期/排期?
  19. 什么是5G CPE?
  20. 物研究所做一位科研人员

热门文章

  1. html自定义颜色函数,javascript设置元素背景颜色
  2. jvm 什么是对象头,里面有什么
  3. idea中一个maven项目增加Web支持
  4. jsp页面返回文本时产生大量空格的解决办法
  5. 蓝湖怎么切图标注_【蓝湖指北】一张图教你如何选择标注尺寸
  6. python获取一个模块的路径_如何获取 Python 模块的路径
  7. python实现md5加密_Python实现md5加密验证访问接口总结
  8. vue github开源项目_11月份Github上最热门的开源项目
  9. java中抽象类和接口的作用与区别
  10. jndi连接池链接mysql_使用容器提供的数据库连接池--JNDI用法