欢迎来到天天文库
浏览记录
ID:12556776
大小:113.50 KB
页数:3页
时间:2018-07-17
《visual studio 2008之语言特性 查询语法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VisualStudio2008之语言特性查询语法2007-11-1410:02作者:韩现龙的博客出处:天极网软件频道责任编辑:幽灵 IfinsteadofreturningPersonobjects,Iwantedtoreturnjustthefirstnamesofthepeopleinthecollection,Icouldre-writemyquerylikeso: 如果我不返回一个Person对象,只想返回collectioin中所有人的名字的集合,可以按照如下方式重写该查询语句: NoteabovehowI
2、amnolongersaying"selectp",butaminsteadsaying"selectp.FirstName".ThisindicatesthatIdon'twanttoreturnbackasequenceofPersonobjects-butratherIwanttoreturnasequenceofstrings-populatedfromeachPersonobject'sFirstNameproperty(whichisastring).Thedatatyperesultofthisquerysynta
3、xexpressionisconsequentlyoftypeIEnumerable. 注意上边我没再用“selectp",而是用"selectp.FirstName"。这表明我不想让查询返回Person对象,而是想返回一个字符串--这个字符串是Person这个对象的FirstName属性(是个字符串)中取得的。因此,该查询表达式返回值的数据类型是IEnumerable。 SampleQuerySyntaxAgainstaDatabase 关于对数据库查询的事例: ThebeautyofLINQisthatIcanuse
4、theexactsamequerysyntaxagainstanytypeofdata.Forexample,IcouldusethenewLINQtoSQLobjectrelationalmapper(ORM)supportprovidedin"Orcas"tomodeltheSQL"Northwind"databasewithclasseslikebelow(pleasewatchmyvideoheretolearnhowto-dothis): LINQ的美在于我可以对任何类型的数据使用完全一致的查询语法。比如,我可以用在
5、"Orcas"中提供的新的LINQtoSQLORM来构建SQL的"Northwind"数据库,如下图:((请看我的视频来学习如何做:watchmyvideohere): OnceI'vedefinedtheclassmodelabove(anditsmappingto/fromthedatabase),Icanthenwriteaquerysyntaxexpressiontofetchallproductswhoseunitpriceisgreaterthan$99: 一旦我定义了如上的类模型(和它的从/向数据库中绘制出
6、来的图),我可以写一个查询语句,查找出unitprice比99$多的产品来: IntheabovecodesnippetIamindicatingthatIwanttoperformaLINQqueryagainstthe"Products"tableontheNorthwindDataContextclasscreatedbytheORMdesignerinVisualStudio"Orcas".The"selectp"indicatesthatIwanttoreturnasequenceofProductobjects
7、thatmatchmyquery.ThedatatyperesultofthisquerysyntaxexpressionisconsequentlyoftypeIEnumerable. 在上边的代码片断中,我指明了我想对用ORM设计器生成的NorthwindDataContext类的"Products"表进行查询。"selectp"表达了我想返回跟我的查询想匹配的Product对象。因此,该查询表达式的返回值类型为IEnumerable. JustlikewiththepreviousListcollectionquery
8、syntaxexample,theC#compilerwilltranslateourdeclarativequerysyntaxintoexplicitextensionmethodinvocations(usingLambdaexpressionsasthe
此文档下载收益归作者所有