对象初始化器 到目前, 我们所有的select语句都返回了包含单一元素的类型. 使用C#的对象初始化器, 我们可以构造更加复杂的类型. 例如, 我们想构造一个查询, 用来去除一个名字列表中的所有元素中包含的元音字符, 并且最后仍然要包含原始值. 我们可以构造以下的类型来协助: 1: class TempProjectionItem 2: { 3: public st 发布时间:2012-03-13 作者: 佚名技术 views(315)
名称与命名空间 与.NET类型可以拥有命名空间一样, XML元素和属性也同样可以拥有命名空间. XML命名空间主要完成两件事情. 首先, 与C#的命名空间一样, 它们可以帮助避免命名冲突. 当你要合并来自两个不同XML文件的时候这可能会成为一个问题. 其次, 命名空间赋予了名称一个绝对的意义. 例如, 名称nil 可以代表任何意思, 然而, 发布时间:2012-03-13 作者: 佚名技术 views(637)
解释查询(Interpreted Queries) LINQ提供了2个平行架构:针对本地对象集合的查询(local query), 以及针对远程数据源的查询(interpreted query). 目前我们它讨论的架构都是关于本地查询的, 主要是操作那些实现了IEnumerable的对象集合.而Interpreted query则是用于操作那些实现了IQueryable的序列, Queryable类中的查询操作符 发布时间:2012-03-13 作者: 佚名技术 views(436)
投射到X-DOM 我们可以将LINQ查询投射到一个X-DOM. 其数据源可以是LINQ支持的任何一种, 例如: LINQ to SQL 表 本地集合 另外一个X-DOM 不管是那种数据源, 使用LINQ投射一个X-DOM的策略是一样的: 你首先需要编写一个构建表达式用于产生需要的X-DOM形状, 然后围绕这个表达式编写LINQ查询 例如, 假设我们想从一个数据库当中查 发布时间:2012-03-13 作者: 佚名技术 views(432)
LINQ to SQL 实体类 只要使用了适当的属性 (attribute),LINQ to SQL允许你使用任何类去展现数据: 1: [Table] 2: 3: public class Customer 4: 5: { 6: 7: [Column(IsPrimaryKey= true )] 8: 9: public int ID; 10: 11: [Column] 12: 13: public string Name; 14: 15: } [Table]属性 发布时间:2012-03-13 作者: 佚名技术 views(1289)
声明扩展方法 我们并不能将任何的方法都作为扩展方法扩展方法必须要有以下的一些特性: 它必须是被包含在一个非嵌套的, 非泛型的静态类当中(因此必须是静态方法) 必须至少拥有一个参数 第一个参数必须是由this关键字开头 第一个参数不能有其他的修饰符, 例如out / ref 第一个参数类型不能是一个指针类型 扩展方法本身可 发布时间:2012-03-13 作者: 佚名技术 views(208)
没有扩展方法的日子 如果在开始使用C# 3之前你已经编写了很多的C# 2代码, 你应该看一下你的静态类它们中的大多数都是可以被转换成扩展方法的候选. 这并不是说所有已经存在的静态类都适合, 但你可以透过下面的特征来认出它: 你想增加成员到一个类型上 你不需要增加任何的数据到类型实例上 你不能改变类型本身, 因为它来自 发布时间:2012-03-13 作者: 佚名技术 views(205)
构建查询表达式 本节中, 我们假设我们拥有一个这样的实体类: 1: [Table] public partial class Product 2: 3: { 4: 5: [Column(IsPrimaryKey= true )] public int ID; 6: 7: [Column] public string Description; 8: 9: [Column] public bool Discontinued; 10: 11: [Column] 发布时间:2012-03-13 作者: 佚名技术 views(413)
|