1.AsEnumerable:将类型转换为泛型 IEnumerable
使用 AsEnumerable<TSource> 可返回类型化为泛型 IEnumerable 的参数。在此示例中,LINQ to SQL(使用默认泛型 Query)会尝试将查询转换为 SQL 并在服务器上执行。但 where 子句引用用户定义的客户端方法 (isValidProduct),此方法无法转换为 SQL。
解决方法是指定 where 的客户端泛型 IEnumerable<T> 实现以替换泛型 IQueryable<T>。可通过调用 AsEnumerable<TSource>运算符来执行此操作。
var q =
from p in db.Products.AsEnumerable()
where isValidProduct(p)
select p;
语句描述:这个例子就是使用AsEnumerable以便使用Where的客户端IEnumerable实现,而不是默认的IQueryable将在服务器上转换为SQL并执行的默认Query<T>实现。这很有必要,因为Where子句引用了用户定义的客户端方法isValidProduct,该方法不能转换为SQL。
2.ToArray:将序列转换为数组
使用 ToArray <TSource>可从序列创建数组。
var q =
from c in db.Customers
where c.City == "London"
select c;
Customer[] qArray = q.ToArray();
语句描述:这个例子使用 ToArray 将查询直接计算为数组。
3.ToList:将序列转换为泛型列表
使用 ToList<TSource>可从序列创建泛型列表。下面的示例使用 ToList<TSource>直接将查询的计算结果放入泛型 List<T>。
var q =
from e in db.Employees
where e.HireDate >= new DateTime(1994, 1, 1)
select e;
List<Employee> qList = q.ToList();
4.ToDictionary:将序列转化为字典
使用Enumerable.ToDictionary<TSource, TKey>方法可以将序列转化为字典。TSource表示source中的元素的类型;TKey表示keySelector返回的键的类型。其返回一个包含键和值的Dictionary<TKey, TValue>。
var q =
from p in db.Products
where p.UnitsInStock <= p.ReorderLevel && !p.Discontinued
select p;
Dictionary<int, Product> qDictionary =
q.ToDictionary(p => p.ProductID);
foreach (int key in qDictionary.Keys)
{
Console.WriteLine(key);
}
语句描述:这个例子使用 ToDictionary 将查询和键表达式直接键表达式直接计算为 Dictionary<K, T>。
本文摘自:http://www.cnblogs.com/lyj/archive/2008/03/13/1103893.html
分享到:
相关推荐
LINQ to SQL语句(18)之运算符转换
LINQ - 转换运算符 此示例显示了不同用途的转换运算符 LINQ - 其它运营商 此示例显示了其他运营商的不同用途 LINQ - 自定义序列运算符 此示例显示了不同用途的自定义序列运算符 LINQ - 代接手经营 此示例显示了不同...
LINQ to SQL语句(18)之运算符转换 LINQ to SQL语句(19)之ADO.NET与LINQ to SQL LINQ to SQL语句(20)之存储过程 LINQ to SQL语句(21)之用户定义函数 LINQ to SQL语句(22)之DataContext LINQ to SQL语句(23)之动态查询...
linq详细案例.linq语法,开放式并发控制和事务,Null语义和DateTime,String,对象标识,对象加载,运算符转换,ADO.NET与LINQ to SQL
LINQ to SQL语句(18)之运算符转换 59 1.AsEnumerable:将类型转换为泛型 IEnumerable 59 2.ToArray:将序列转换为数组 59 3.ToList:将序列转换为 泛型列表 59 4.ToDictionary:将序 列转化为字典 60 LINQ to SQL...
•PasteXmlAsLinq: 能够自动将 XML 转换为 LINQ to XML 的 Visual Studio 外接程序。 •QueryVisualizer: 使 LINQ to SQL 开发人员能够看到其查询的 SQL 代码,并能在网格中查看查询的结果。 •Reflector: 使用 LINQ...
为了进行并排比较,原始C#源代码显示在等效的Clojure翻译之上。 输出显示了运行Clojure示例的控制台输出。 以...结尾的输出说明仅显示部分响应。 使用的 C# 和 Clojure 实用程序的源代码包含在它们使用的第一部分下...
为了进行并排比较,原始C#源代码显示在等效的Java8翻译之上。 输出显示了运行Java示例的控制台输出。 以...结尾的输出说明仅显示部分响应。 使用的 C# 和 Clojure 实用程序的源代码包含在它们使用的第一部分下。 ...
在运行时,LINQ to SQL 根据LINQ表达式或查询运算符生成SQL语句,发送到数据库进行操作。数据库返回后,LINQ to SQL负责将结果转换成实体类对象。 建立实体类的方法有很多,例如LINQ to SQL设计器,手动编码建立,...
9.2.7 转换运算符的指导原则 9.3 引用其他程序集 9.3.1 更改程序集目标 9.3.2 引用程序集 9.3.3 类型封装 9.4 定义命名空间 9.5 xml注释 9.5.1 将xml注释与代码构造关联到一起 9.5.2 生成xml文档文件 9.6 ...
第3章 运算符和类型强制转换 3.1 运算符 3.1.1 赋值运算符 3.1.2 算术运算符 3.1.3 条件运算符 3.1.4 简化运算符 3.1.5 checked和unclaecked运算符 3.1.6 关系运算符 3.1.7 sizeo运算符和typeoiFj运算符 3.1.8 可空...
该库提供了一个类,该类将生成的转换为,任何LINQ提供程序都可以使用该。 它提供以下功能: 支持所有内置的运算符。 支持自定义条件运算符。 支持自定义条件参数解析 简单类型(字符串,数字,枚举)的默认参数...
数据类型转换 运算符与表达式 第3章 程序流程控制 选择结构及if,switch语句 循环结构及循环语句 跳出循环 异常处理及try-catch-finally语句 第4章 数组与集合 数组的概念及定义 一维...
使用转换运算符 99 在结构之间实作用户定义的转换 101 使用运算符多载建立复数类别 103 覆写 Equals() 和运算符 == 的方针 105 类别和结构 108 类别 112 对象 115 结构 118 使用结构 119 继承 122 多型 126 使用 ...