Linq TO SQL 虽好,但不要滥用
看看下面的例子。我们的场景是,需要对客户表按照国家进行分组,然后打印出来每个国家的客户数目。
下面的语法看起来很优雅
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 虽好,但不要滥用相关推荐
- 如何查看Linq to SQL运行时,实际执行的Sql语句
调试Linq to sql代码是, 如果遇到错误,很难判断错误的原因是什么,如果能够输出实际执行的sql原文,对于我们寻找错误的原因有有很大帮助. 以下是我用到的方法: StringBuilder s ...
- Linq to SQL 资源
Scott Guthrie 的 Linq to SQL 系列: 1)介绍 http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to ...
- .NET 3.5(12) - DLINQ(LINQ to SQL)之事务处理和并发处理
步步为营VS 2008 + .NET 3.5(12) - DLINQ(LINQ to SQL)之事务处理和并发处理 作者:webabcd 介绍 以Northwind为示例数据库,DLINQ(LINQ ...
- 一步一步学Linq to sql(六):探究特性
延迟执行 IQueryable query = from c in ctx.Customers select c; 这样的查询句法不会导致语句立即执行,它仅仅是一个描述,对应一个SQL.仅仅在需要 ...
- LINQ to SQL 在 Visual Studio 2008 中的简单应用
在.Net Framework 3.5 中,最激动人心的就是增加了LINQ功能,LINQ在数据集成的基础上提供了新的轻型方式.有了LINQ,我们创建的查询现在就编程了.Net 框架的一个成员,在对要操 ...
- 一步一步学Linq to sql(一):预备知识
从今天起将推出新手讲堂,首先从linq开始详细讲解.一步一步学Linq to sql(一):预备知识 什么是Linq to sql Linq to sql(或者叫DLINQ)是LINQ(.NET语言集 ...
- 一步一步学linq to sql(四)查询句法
select 描述:查询顾客的公司名.地址信息 查询句法: var 构建匿名类型1 = from c in ctx.Customers select new { 公司名 = c.CompanyName ...
- 在.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, ...
- 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(Part5) 转
设计开发表现层 表现层负责应用程序的用户界面,图4.1是表现层的详细视图,包括Web Forms, Web User Control, Code-Behind 和共享的用户界面代码.表现层负责推送信息 ...
- LINQ : 如何为LINQ TO SQL实现自定义业务逻辑
LINQ TO SQL很好很强大,它几乎包含了我们能够想到的所有与数据库有关的操作,甚至也包含了一些我们可能都没有想到的. 但不管怎样,也许我们需要在LINQ TO SQL的操作中添加一个自定义业务逻 ...
最新文章
- 带您走进松本行弘的程序世界
- 神经网络中激活函数的真正意义?
- [android] setOnTouchEvent 设置返回值为true 和 false的区别
- 如何利用vw+rem进行移动端布局
- 一行上自动控制数据长度,并换行
- 对文件指定行进行编辑和保存 linux,linux 文本编辑命令grep sed awk(转)
- 【z】多线程Java Socket编程示例
- xilinx提供测试dma和fft在sdk端的代码
- win7家庭版计算机桌面,Win7 home basic家庭普通版显示桌面图标的方法
- MTK 修改ro.hardware 获取cpu 和固件版本号方法
- Vue使用Element UI插件
- 计算机管理能看到移动硬盘,无法识别移动硬盘并且不显示磁盘图标.
- Python属性使用@property和不使用@property的差别
- chrome 代理设置
- 计算机表格如何求和,excel表格怎么求和? excel自动求和的三种方法
- 综合布线系统带宽与计算机网络带宽计算题,计算机网络思考与练习题.doc
- 中文关键词提取tfidf算法改进bsaeline
- 如何评估前端开发周期/排期?
- 什么是5G CPE?
- 物研究所做一位科研人员
热门文章
- html自定义颜色函数,javascript设置元素背景颜色
- jvm 什么是对象头,里面有什么
- idea中一个maven项目增加Web支持
- jsp页面返回文本时产生大量空格的解决办法
- 蓝湖怎么切图标注_【蓝湖指北】一张图教你如何选择标注尺寸
- python获取一个模块的路径_如何获取 Python 模块的路径
- python实现md5加密_Python实现md5加密验证访问接口总结
- vue github开源项目_11月份Github上最热门的开源项目
- java中抽象类和接口的作用与区别
- jndi连接池链接mysql_使用容器提供的数据库连接池--JNDI用法