族谱网 头条 人物百科

语言集成查询

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:557
转发:0
评论:0
语言风格LINQ新增了多项语言的风格,来展示出查询语言的扩充性,例如:C#:匿名类型匿名类型(Anonymoustype)是C#3.0与VisualBasic9.0新增的功能,它允许开发人员可以使用不具类型的方式创建新的数据结构,而真正的类型在编译时期,由C#(或VB)Compiler自动产生,并写入编译目标文件中,它可以让开发人员能够很简单利用匿名类型创建对象,LINQ中的select指令即是利用这种特性来创建回传对象。匿名类型本质上是表达元组(tuple),采用值语义。下列使用匿名类型的代码:[WebGet]publicIQueryableGetCategoryByName(stringCategoryName){try{varquery=base.CurrentDataSource.Categories.Where("it.CategoryName=@Name",newObjectP...

语言风格

LINQ新增了多项语言的风格,来展示出查询语言的扩充性,例如:C#:

匿名类型

匿名类型(Anonymous type)是C# 3.0与Visual Basic 9.0新增的功能,它允许开发人员可以使用不具类型的方式创建新的数据结构,而真正的类型在编译时期,由C# (或VB) Compiler自动产生,并写入编译目标文件中,它可以让开发人员能够很简单利用匿名类型创建对象,LINQ中的select指令即是利用这种特性来创建回传对象。

匿名类型本质上是表达元组(tuple),采用值语义。

下列使用匿名类型的代码:

[WebGet]publicIQueryableGetCategoryByName(stringCategoryName){try{varquery=base.CurrentDataSource.Categories.Where("it.CategoryName = @Name",newObjectParameter[]{newObjectParameter("Name",CategoryName)});}catch(Exception){throw;}returnquery;}

会由编译器改写为:

[WebGet]publicIQueryableGetCategoryByName(stringCategoryName){IQueryableCS$1$0000;// 由編譯器改寫而成。try{CS$1$0000=base.CurrentDataSource.Categories.Where("it.CategoryName = @Name",newObjectParameter[]{newObjectParameter("Name",CategoryName)});}catch(Exception){throw;}returnCS$1$0000;}

扩展方法 (Extension method)

Lambda表达式 (Lambda expression)

表达式树 (Expression tree)

标准查询运算符 (Standard query operators)

LINQ的各式言语支持度

下列的言语支持LINQ。

C# 3.0

F# 1.1.8.1

Visual Basic 2008(9.0)

注:C++/CLI尚未支持LINQ。但是有第三方的C++包 ,以及第三方的PHP包

LINQ的示例

一个简单例子:

usingSystem;usingSystem.Linq;namespaceDuckTyping{internalclassProgram{privatestaticvoidMain(){int[]array={1,5,2,10,7};// Select squares of all odd numbers in the array sorted in descending ordervarresults=fromxinarraywherex%2==1orderbyxdescendingselectx*x;foreach(varresultinresults){Console.WriteLine(result);}}}}

输出: 49 25 1

另一个例子:

// the Northwind type is a subclass of DataContext created by SQLMetal// Northwind.Orders is of type Table// Northwind.Customers is of type TableNorthwinddb=newNorthwind(connectionString);// use "var" keyword because there is no name for the resultant type of the projectionvarq=fromoindb.Ordersfromcindb.Customerswhereo.Quality=="200"&&(o.CustomerID==c.CustomerID)selectnew{o.DueDate,c.CompanyName,c.ItemID,c.ItemName};// q is now an IEnumerable, where T is the anonymous type generated by the compilerforeach(vartinq){// t is strongly typed, even if we can"t name the type at design timeConsole.WriteLine("DueDate Type = {0}",t.DueDate.GetType());Console.WriteLine("CompanyName (lowercased) = {0}",t.CompanyName.ToLower());Console.WriteLine("ItemID * 2 = {0}",t.ItemID*2);}

Visual Studio支持

LINQ目前由Visual Studio 2008、2010、2012、2013、2015支持。

语言扩展

微软同样提供了LINQExtender,允许用户在不了解LINQ实现细节的情况下,编写自己的LINQ扩展。 如:LINQ to Twitter,LINQ to Oracle,LINQ to Active Directory等

相关

对象关系映射(ORM)


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 清代硃卷集成
背景硃卷是记载清代科举考试的历史文献,但随着清末科举制度的废除,以及内忧外患,这方面的资料散失严重。为了保存文化典籍,张元济、叶景葵等在上海创建了合众图书馆。并从海盐朱氏寿鑫斋购买其所藏的2000册硃卷,后又有吴县潘氏砚楼捐赠了1000余册。到了二十世纪五十年代,合众图书馆改为上海市历史文献图书馆,后又与上海图书馆合并。此后仍不断收集,到九十年代初共8000余册。在1992年,顾廷龙将这些汇编起来,由台北成文出版社出版,成书为《清代硃卷集成》。
· 诗词查询诗词查询
诗词查询诗词查询<江城子>是子瞻怀念亡妻的那一首,还是密州出猎那一首?如果是前者则务观的<<钗头凤>>,以及易安的<<一剪梅>>,永叔的<<生查子>>,与之较为接近.苏东坡的词《江城子》:十年生死两茫茫。不思量,自难忘。千里孤坟、无处话凄凉。纵使相逢应不识、尘满面,鬓如霜。夜来幽梦忽还乡。小轩窗,正梳妆。相顾无言,惟有泪千行,料得年年断肠处,明月夜,短松冈。生查子元夕欧阳修去年元夜时,花市灯如昼,月上柳梢头,人约黄昏后。今年元夜时,月与灯依旧,不见去年人,泪满春衫袖.李清照的《一剪梅》:红藕香残玉簟秋。轻解罗裳,独上兰舟。云中谁寄锦书来?雁字回时,月满西楼。花自飘零水自流。一种相思,两处闲愁。此情无计可消除,才下眉头,却上心头。如果你说的是后者,则岳飞将军的<<满江红>>,幼安的&l...
· 《中华姓氏集成》
最近,文成县74岁的退休教师赵沛党编著的《中华姓氏集成》,由国际炎黄文化出版社出版发行。赵沛党退休前是县黄坦中学的语文教师。他对中华姓氏颇有研究,1995年退休后,忙着搜集这方面的资料。始料不到的是这些积累的资料因房屋装修,不小心被家人当废纸卖掉。当时,他确实难过了一阵子。后来,他被民办中学聘用,著书的事被搁了下来。2005年他又重新编著《中华姓氏集成》。他埋头搜集资料,文成不够,还到温州、杭州等地的书店去找。功夫不负有心人,终于在去年11月完成出版此书的心愿。该书共收集单姓3626家,复姓2306家,其中二字复姓2140家,三字复姓165家,四字复姓8家,五字复姓3家,古今姓氏总计5932家。为查阅方便,该书正文姓氏排列以现代汉语语音为序,正文前还附部首表与检字表,姓氏中有渊源、例句的,尽量摘登。表述语言文白相间,有详有略,通俗易懂。(来源:中国妇女网)
· 集成电路
介绍晶体管发明并大量生产之后,各式固态半导体组件如二极管、晶体管等大量使用,取代了真空管在电路中的功能与角色。到了20世纪中后期半导体制造技术进步,使得集成电路成为可能。相对于手工组装电路使用个别的分立电子组件,集成电路可以把很大数量的微晶体管集成到一个小芯片,是一个巨大的进步。集成电路的规模生产能力,可靠性,电路设计的模块化方法确保了快速采用标准化集成电路代替了设计使用离散晶体管。集成电路对于离散晶体管有两个主要优势:成本和性能。成本低是由于芯片把所有的组件通过照相平版技术,作为一个单位印刷,而不是在一个时间只制作一个晶体管。性能高是由于组件快速开关,消耗更低能量,因为组件很小且彼此靠近。2006年,芯片面积从几平方毫米到350mm²,每mm²可以达到一百万个晶体管。第一个集成电路雏形是由杰克·基尔比于1958年完成的,其中包括一个双极性晶体管,三个电阻和一个电容器,相较于现今科技的尺寸...
· 族谱查询平台在线查询官网有哪些?
数字经济是推动经济发展质量变革的“加速器”,数字时代的来临,也让人们越来越感受到时代发展与互联网的关联。家谱作为中国传统文化中尤为重要的一支,一直以来都在家族当中代代相传。近几年,数字家谱从问世到被大众认可,这也证明了即便是传统文化在数字时代的推动下,同样有着翻天覆地的变革。以前家谱印刷用得最多的就是纸张,宣纸、书纸、铜版纸各种不同的纸张也满足不同家族的要求。现在数字时代的来临,互联网家谱的出现数字阅读逐渐替代了纸张千百年来作为信息载体的统治地位。再加上现在除了年轻人,很多家族之中有文化底蕴的族贤,也习惯性地从智能手机里获取各种信息,网络通讯技术的普及改变了很多人的生活习惯。通过个人电脑或手机移动终端来阅读、学习、娱乐、获取家族咨询、族人互动也成为当下最为流行的一种趋势。家谱作为“百姓历史”的载体,正迎合这一趋势。传统的纸质家谱虽然有一定的收藏价值,但是查阅不便捷、保存易破损、内容纠错难、...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信