随笔分类 - LINQ
LINQ
摘要:时间:午饭后 地点:苏州公司 主题:Entity Framework涉及的一些C#语言特性,要讲的语言特性,如下图所示 1.Extension Methods 很旧的主题了,DebugLZQ以前也有相关的博文提过。用个简单点的例子来说吧 下面的例子完成一个计算某个月剩余天数的功能,我们可以如下编码:
阅读全文
摘要:LINQ to XML是一个比较大的主题,在这篇博文中,DebugLZQ不想也没有必要依次讲述譬如用Linq to XML 创建删除...XML文件,lz想讲述的是在实际应用中linq to SQL 如何展现我们需要的数据,即XML文件获取以后如何进行查询想要的项目,展现在UI上。在前一段时间开发的护士站项目中,我是for循环XMLReader的方式遍历XML文件的。也能完成相关的需求,且函数封装好了以后,可以直接调用,也挺方便。下面用LINQ to XML来展现。具体更详细的东西可以去查MSND。客户端的XML文件如下,为了展现方便我只取了3项:<?xml version="
阅读全文
摘要:前面介绍了DataContext类,它可以用来映射和连接数据库,执行SQL命令,跟踪实体对象的状态。下面介绍Table<TEntity>表示表格记录,它是一个泛型集合类,它的元素就是表格实体对象。它提供一组方法,对元素进行添加删除操作,并可以通过DataContext将这些操作保存到数据库。表还是前面的那张表,在项目中添加了一个LINQ to SQL类。重点是InsertOnSubmit、DeleteOnSubmit等方法。using System;using System.Collections.Generic;using System.Linq;using System.Tex
阅读全文
摘要:本篇博文接上一篇,DataContext类位于System.Data.Linq.dll程序集中的System.Data.Linq名称空间下。在LINQ to SQL中负责实体对象和呢数据库之间的数据交换及其他数据库操作,还负责吧数据库中的数据映射成实体类的实例。DataContext是LINQ to SQL操作实体类建立后紧接着需要操作的对象。本文总结其常用函数和属性的作用及常用用法,实体类是上一节的GuestInfo.cs类,数据库也采用上一节的数据库Database1.mdb,下面的示例程序对对象和属性按其功能进行了必要的分组,代码中也有详尽的注释。代码如下:using System;us
阅读全文
摘要:使用LINQ to SQL时,需要首先建立用于映射数据库对象的模型,也就是实体类。在运行时,LINQ to SQL 根据LINQ表达式或查询运算符生成SQL语句,发送到数据库进行操作。数据库返回后,LINQ to SQL负责将结果转换成实体类对象。建立实体类的方法有很多,例如LINQ to SQL设计器,手动编码建立,使用XML文件映射,使用命令行工具SqlMetal生成等。其中最方便的就是LINQ to SQL设计器。1.使用LINQ to SQL设计器建立实体类 在一个示例用的Demo控制台程序中添加一个“基于服务的数据库”Database1.mdf,建立一张tb_GuestInfo的表。
阅读全文
摘要:本博文接着上几篇LINQto Object和多线程的相关博文,用LINQ to Object和多线程实现文件查找与分组的Demo作为LINQ to Object 的一个小结。程序的功能如下:点击界面右上角按钮选择一个文件夹,多线程加载文件,LINQ进行相关的查询,实现分组查找等功能。程序的注释中,DebugLZQ加入了很详细的注释,以及,LZ代码写作的流程,因此这里不做更多的介绍,LINQ和多线程的相关技能请参考DebugLZQ前面的几篇博文。代码如下:using System;using System.Collections.Generic;using System.ComponentMod
阅读全文
摘要:本篇接上一篇:延时执行的Enumerable类方法,总结常用的立即执行的Enumerable类方法和它们的常用用法。为了便于理解和记忆,DebugLZQ进行了分组。1.ToArray序列转换成数组2.ToList序列转换成List<T>using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 立即执行的Enumerable类方法成员{ class Program { static void Main(string[] args) ...
阅读全文
摘要:LINQ标准查询运算法是依靠一组扩展方法来实现的。而这些扩展方法分别在System.Linq.Enumerable和System.Linq.Queryable这连个静态类中定义。 Enumerable的扩展方法采用线性流程,每个运算法会被线性执行。这种执行方法如果操作类似关系型数据库数据源,效率会非常低下,所以Queryable重新定义这些扩展方法,把LINQ表达式拆解为表达式树,提供程序就可以根据表达式树生成关系型数据库的查询语句,即SQL命令,然后进行相关操作。 每个查询运算符的执行行为不同,大致分为立即执行和延时执行。延时执行的运算符将在枚举元素的时候被执行。 Enumerab...
阅读全文
摘要:出于工作需要,准备把LINQ的相关知识梳理一遍,希望能填补下之前学习漏掉的或是没有注意的地方,也为未来减轻压力~ LINQ查询表达式的基本语法很容易掌握,它使用C#常见的语言构造,从外观上看,和我们常用的SQL类似,并且查询表达式中的变量可以用匿名类型,所以在很多情况下,不需要指定变量类型就可以构建LINQ表达式。 LINQ的数据源可以是数据库对象或是XML流等,也可以使实现了IEnumerable或者泛型IEnumberable<T>接口的集合对象。 LINQ的基本语法包含如下的8个上下文关键字,这些关键字和具体的说明如下:关键字说明from指定范围变量和数据源where 根据b
阅读全文
摘要:本文灵感来自Andre Azevedo在CodeProject上面的一片文章,An Asynchronous Socket Server and Client,讲的是异步的Socket通信。关于技术博客,我觉得永远是老外的比较好~Andre Azevedo的这篇文章里,给出了一个很复杂的例子,内容涉及如下Socket连接(Socket Connection)Socket服务(Socket Service)连接主机(Connection Host)加密与压缩(Encrypt与Compress)请求入队(Enqueuing Requests)确保发送和接收(Ensure send and reci
阅读全文