- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
复杂的对象映射 前面的例子中,我们选取的数据表为users表,该表中仅仅有3个字段,这个时候我们手工的编写一个类用于实现与该表中的一条记录进行映射。 考虑到在真正的工作中,数据库中的字段数量及表与表之间的关系会比较繁多和复杂,这个时候手工编写映射类是比较困难的。 VS2008中为我们提供了映射类型生成的可视化工具 可视化工具的使用 生成映射类 数据库中存储过程及函数的封装 Lambda表达式 请见如下简化操作: 匿名方法 在C#2.0中,引入了匿名方法。使用匿名方法,开发人员可以直接在委托初始化的时候去声明函数代码,而不必使用委托的构造函数去指明要调用的函数。 Lambda表达式 Lambda表达式是一种匿名函数,这种匿名函数可以指向表达式或者代码段,还可用来委托或者是表达示树。 所有的Lambda表达都利用“=”作为操作符(读作“转向”),该操作符的左侧相当于函数的输入参数(如果有的话),右侧是表达式或者代码段。 如:X=X*X,X是输入 的参数,该Lambda表达式返回的是X的乘方。 具备标准查询操作符的Lambda表达式 许多标准的查询操作符都有一个输入的参数FuncT,Tresult。 FuncT,Tresult是一个泛型委托,该委托中第一个类型参数是所指函数输入的参数,第二个泛参数是指函数的返回值类型。 操作实例: 利用Func委托指向一个普通方法 利用Func委托指向一个匿名方法 利用Func委托指向一个Lambda表达式 TableTentity泛型类的扩展方法 DataContext.GetTable()方法从我们指定的数据表中选出数据,并将数据缓存在TableTentity类的一个实例中。 在TableTentity类中,为使用者提供了一系列扩展方法,其中很多是用于Lambda表达式查询的。下面来看一下MSDN的描述。 通过查看,我们可以发现,这些查询方法中会接收一个Func类型的参数,并且返回可以进行枚举的接口派生类实例。 实例操作 利用Lambda表达式实现对于Customers表的选择操作。 LINQ TO SQL综合实例 下面我们利用C#3.0中提供的LINQ技术结合.NET FrameWork3.0中提供的WPF技术来实现一个例子。 操作要求: 利用LINQ及WPF实现对用户数据的添加,修改,删除以及显示用户数据的最新值 。 LINQ TO XML LINQ TO XML提供了一种基于内存的XML编程接口,该接口可以用于平衡.NET中的LINQ框架。LINQ TO XML使用集成在最新的 .NET Framework 语言,可以算是一个更新的DOM模式。 System.Xml.Linq命名空间 在该命名空间中提供了一系列的LINQ TO XML操作的类,这些类方便我们开发XML,如下: 类 说明 XAttribute Represents an XML attribute. XComment Represents an XML comment. XDocument Represents an XML document XElement Represents an XML element System.Xml.Linq命名空间中类的使用 EMail:liusx@ C#3.0程序设计 日程 C#3.0的基本新功能 LINQ技术的引出--传统的数据查询方式 使用LINQ语句来实现方便的查询功能 C#3.0的基本新功能 隐式类型化的本地变量(Implicitly Typed Local Variables)及匿名类型(Anonymous Types ) 对象及集合初始化器(Object and Collection Initializer) 扩展方法(Extension Methods ) 分布类及方法(Partial Classes and Methods ) 隐式类型化的本地变量及匿名类型 在C#3.0中本地变量可以利用var关键字来定义变量,该变量不是“变体类型”,该变量的类型根据变量的值在编译的时候确定。 在上面最后一行代码中,可以看到,var 关键字常常 与匿名类型联合使用 匿名类型 使用匿名类型,可以不用事先定义一个类,就直接使用一个类的属性。匿名类型很方便的提供了对只具有一系列只读属性的类的封装。该类型是编译时生成,所以在代码层是无法查看其类型的。 注意:匿名类型通常用于LINQ语句 对象及集合初始化器 对象初始化器 在C#3.0中可以直接对象被构造的时候给实例中的属性或字段进行初始化。 对象及集合初始化器 集合初始化器 C#3.0中对于集合类型的初始化,也可以像数组一样在构造的时候进行。 扩展方法(Extension Methods
文档评论(0)