10 2014 档案
摘要:1. 一对多var expr = context.Products .Where(p => p.Category.CategoryName == "LINQ to SQL" && p.UnitPrice > 10m) .Select(p => new { p.Prod...
阅读全文
摘要:1. Takevar expr = context.Products .Take(10);var expr = (from p in context.Products select p) .Take(10);SELECT TOP (10) [...
阅读全文
摘要:1. Concat 单列Concatvar expr = (from p in context.Products select p.ProductName) .Concat( from c in context.Categories...
阅读全文
摘要:1. Any 返回没有Product的Categoryvar expr = from c in context.Categories where !c.Products.Any() select c;SELECT [Extent1].[Categ...
阅读全文
摘要:1. 简单形式var expr = from p in context.Products group p by p.CategoryID into g select g;foreach (var item in expr){ Console.WriteL...
阅读全文
摘要:1. CASE WHEN ... THEN ...var expr = from p in context.Products select new { 商品ID = p.ProductID, ...
阅读全文
摘要:1. 单一条件查询var expr = context.Products .Where(p => p.ProductName == "LINQ to SQL");SELECT [Extent1].[ProductID] AS [ProductID], [Extent1].[Ca...
阅读全文
摘要:1. 查询全部字段using (NorthwindContext context = new NorthwindContext()){ var expr = context.Products; foreach (var item in expr) { Console....
阅读全文
摘要:1. 创建DataViewEnumerableRowCollection expr = from p in products.AsEnumerable() orderby p.Field("SortOrder") ...
阅读全文
摘要:LINQ to DataSet需要使用System.Core.dll、System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System.Data和System.Data.DataSetExtensions。1. DataTable读...
阅读全文
摘要:LINQ to ADO.NET 包括两种独立的技术: LINQ to DataSet 和 LINQ to SQL。 使用 LINQ to DataSet 可以对DataSet 执行丰富而优化的查询,而使用 LINQ to SQL 可以直接查询 SQL Server 数据库架构。 由 LINQ ...
阅读全文
摘要:分区是指将一个单一的输入序列划分成两个或多个部分或序列,同时不会对输入元素重排序,返回一个新形成的部分。LINQ分割操作符包括Skip、SkipWhile、Take和TakeWhile。1. Skip Skip操作符会跳过一些元素到达序列中的一个指定的位置,将会略过特定数目的若干元素并且返回其...
阅读全文
摘要:量词操作符返回一个Boolean值,指示序列中是否存在部分或全部元素符号指定条件。LINQ中量词操作符包括:All、Any和Contains。1. All All操作符判定在集合中是否所有的值都满足指定的条件。返回值是一个Boolean值。如果所有值都满足条件则返回true,否则返回false...
阅读全文
摘要:相等操作符通过比较两个序列来检查它们相应的元素是否相同。如果两个序列有相同的元素,并且对应元素的值相同,则认为这两个序列是相等的。 SequenceEqual操作符判定两个集合是否相等。判定是通过并行地枚举两个数据源并比较相应元素来完成的。返回值是一个Boolean值——如果两个集合相等则返回...
阅读全文
摘要:元素操作符从一个序列返回单个指定的元素。1.DefaultIfEmpty DefaultIfEmpty操作符将一个空集合替换为包含默认的单个值的集合。在返回序列为空且又需要返回一些对象时,可以通过该操作符返回一个默认值。1>. 原型定义public static IQueryable Defa...
阅读全文
摘要:转换是指将输入对象的类型转变为序列的动作。1.AsEnumerable AsEnumerable操作符将查询的输入以IEnumberable(T)类型返回。2. Cast Cast操作符将IEnumberable集合中的元素转换为指定的类型,当Cast运算符无法将源类型转换为目标类型时将抛出...
阅读全文
摘要:生成操作符从现有序列值中创建新的序列。1. Empty Empty操作符返回一个指定类型的空集。1>. 原型定义public static IEnumerable Empty();2>. 示例var q = Enumerable.Empty();Console.WriteLine(q == n...
阅读全文
摘要:集合操作符对元素的集合或序列集合进行操作,并返回一个集合。LINQ共有4种集合查询操作符:Distinct、Union、Intersect和Except。1. Distinct Distinct操作符删除集合中重复的值,并返回该集合中互不相同的元素。1>. 原型定义public static ...
阅读全文
摘要:聚合函数在一系列的值上执行特定的运算,并返回单个值,如在给定元素的值上执行求和或计数运算。 LINQ共有7种聚合操作符:Aggregate、Average、Count、LongCount、Max、Min和Sum。1.Aggregate Aggregate操作符从某一特定序列或集合中收集值。当...
阅读全文
摘要:串联是一个将两个对象联接在一起的过程。在LINQ中,串联操作将两个集合合并成一个集合,通过Concat操作符实现。Concat1>. 原型定义public static IQueryable Cast(this IQueryable source);public static IQueryabl...
阅读全文
摘要:分组是指根据一个特定的值将序列中的值或元素进行分组。LINQ只包含一个分组操作符:GroupBy。GroupBy1>. 原型定义public static IQueryable> GroupBy(this IQueryable source, Expression> keySelector);2...
阅读全文
摘要:联接是指将一个数据源对象与另一个数据源对象进行关联或联合的操作。这两个数据源对象通过一个共同的值或属性进行关联。 LINQ的联接操作符将包含可匹配(或相同)关键字的两个或多个数据源中的值进行匹配。 LINQ有两个联接操作符:join和groupjoin。1. join join操作符类似于...
阅读全文
摘要:LINQ排序操作符包括:OrderBy、OrderByDescending、ThenBy、ThenByDescending及Reverse。1. OrderBy1>. 原型定义public static IOrderedQueryable OrderBy(this IQueryable sour...
阅读全文
摘要:1. Where 限制操作符Where用于过滤序列,按照提供的逻辑对序列中的数据进行过滤。Where可以出现多次。1.1 原型定义public static IEnumerable Where(this IEnumerable source, Func predicate);public stat...
阅读全文
摘要:投影是指在将序列中的元素转换为一个自定义形式的操作。投影操作符Select和SelectMany用于选择出赋予了适当功能的值。SelectMany操作符可以处理多个集合。 LINQ表达式语法: 1. Select Select操作符对单个序列或集合中的值进行投影。1.1 原型定义publi...
阅读全文
摘要:1. 匿名类型 通过关键字var定义匿名类型,编译器将根据运算符右侧表达式的值来发出一个强类型。 使用匿名类型时要遵守的一些基本规则: ◊ 匿名类型必须有一个初始化值,而且这个值不能是空值(null),因为类型是根据初始化器推断出来的; ◊ 匿名类型可以用于简单类型,也可以用于复杂类型。用于...
阅读全文
摘要:1. LINQ准备 1.1 C#中与LINQ相关特性 2. LINQ to Object 2.1 LINQ to Object投影操作符(Select/SelectMany/Let) 2.2 LINQ to Object限制操作符 2.3 LINQ to Object排序操作符 2.4 LINQ t
阅读全文