世界各地的开发者总是遇到查询的问题,因为缺乏一个定义的路径的数据,并需要掌握的技术,如SQL,Web服务的XQuery等。

在Visual Studio 2008中引入,由Anders Hejlsberg设计LINQ(语言集成查询)允许编写查询,即使没有查询语言,如SQL,XML等知识 LINQ查询,可以由不同的数据类型来写。

LINQ查询示例

C#

using System;using System.Linq;class Program{
  static void Main()
  {
     string[] words = {"hello", "wonderful", "LINQ", "beautiful", "world"};
  	 //Get only short words
	 var shortWords = from word in words	                  where word.Length <= 5
	                  select word;
	    
	 //Print each word out
	 foreach (var word in shortWords)
	 {
	 	Console.WriteLine(word);
	 }	 
	 Console.ReadLine();
  }}

VB

Module Module1
  Sub Main()
     Dim words As String() = {"hello", "wonderful", "LINQ", "beautiful", "world"}
     
     ' Get only short words
     Dim shortWords = From word In words _
                      Where word.Length <= 5 _
                      Select word
     
     ' Print each word out.
     For Each word In shortWords        Console.WriteLine(word)
     Next
     Console.ReadLine()
  End SubEnd Module	

当C#或VB将上述代码被编译和执行时,它产生了以下结果:

hello 
LINQ 
world

LINQ的语法

LINQ有两种语法。这些是以下物质。

  • Lamda (方法) 语法

    示例

    var longWords = words.Where( w => w.length > 10);Dim longWords = words.Where(Function(w) w.length > 10)
  • Query (理解) 语法

    示例

    var longwords = from w in words where w.length > 10;Dim longwords = from w in words where w.length > 10

LINQ的类型

LINQ的类型在下面简要提及。

  • LINQ 到 Objects

  • LINQ 到XML(XLINQ)

  • LINQ 到 DataSet

  • LINQ 到 SQL (DLINQ)

  • LINQ 到 Entities

除上述外,还有一个名为PLINQ一个LINQ类型,这是微软并行LINQ。

在.NETLINQ体系结构

LINQ有3层架构,其中最上层是由语言扩展和底层组成,通常对象实现了IEnumerable<T>或IQueryable的<T>泛型接口的数据源。该体系结构如下图。

LINQ Architecture

查询表达式

查询表达式不过是一个LINQ查询,表示类似于SQL的查询使用操作符,如select,Where 和 OrderBy的一种形式。查询表达式通常开始以关键字“From”。

访问标准的LINQ查询操作符,命名空间System.Query默认情况下应导入。这些表达式都写在C#3.0声明性查询语法。

下面是一个例子来说明它由数据源创建一个完整的查询操作,查询表达式定义和查询执行。

C#

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Operators{
  class LINQQueryExpressions
  {
     static void Main()
     {
        // Specify the data source.
        int[] scores = new int[] { 97, 92, 81, 60 };

        // Define the query expression.
        IEnumerable<int> scoreQuery = from score in scores                                            where score > 80
                                            select score;

           // Execute the query.
           foreach (int i in scoreQuery)
           {
              Console.Write(i + " ");
           }
           Console.ReadLine();
     }
  }}

当上述代码被编译和执行时,它产生了以下结果:

97 92 81

扩展方法

引入.NET3.5,扩展方法只有静态类中声明,并允许包含自定义方法的对象进行一些精确的查询操作来扩展类,而不由这个类的实际成员。这些也可以被重载。

简而言之,扩展方法被用来转换查询表达式为传统的方法调用(面向对象)。

LINQ和存储过程的区别

还有就是LINQ和存储过程之间存在差异的数组。这些差别将在下面提及。

  • 存储过程比LINQ查询速度更快,因为它们遵循预期的执行计划。

  • 在比较执行LINQ查询这很容易避免,而不是存储过程作为前者在编译时Visual Studio的智能提示支持,以及全类型检查运行时错误。

  • LINQ允许调试通过使用.NET调试器不是在存储过程。

  • LINQ提供了相对于存储过程,其中有必要重新写为数据库类型多样的代码的多个数据库的支持。

  • LINQ基于解决方案的部署是容易和简单,相比部署一套存储过程。

LINQ的需要

在此之前LINQ,有必要学习C#,SQL,和各种API结合在一起既要形成一个完整的应用程序。因为,这些数据源和编程语言面临的阻抗不匹配;需要短编码的感觉。

下面是在查询数据的LINQ来临之前有多少不同的技术中使用由开发的一个例子。

SqlConnection sqlConnection = new SqlConnection(connectString);SqlConnection.Open();System.Data.SqlClient.SqlCommand sqlCommand = new SqlCommand();sqlCommand.Connection = sqlConnection;sqlCommand.CommandText = "Select * from Customer";return sqlCommand.ExecuteReader (CommandBehavior.CloseConnection)

有趣的是,出了特征代码行,查询获取只有最后两个定义。使用LINQ,相同的数据的查询可以写成一个可读颜色编码形式象,如下面那太在很短提下列到之一。

Northwind db = new Northwind(@"C:DataNorthwnd.mdf");var query = from c in db.Customers
            select c;

LINQ的优点

LINQ提供了一系列的优势,其中最重要的是其强大的表达能力,使开发表达声明。一些LINQ的优点如下。

  • LINQ提供语法高亮,证明有助于找出在设计时的错误。

  • LINQ提供智能感知这意味着很容易写更精确的查询。

  • 写LINQ代码是相当快的,因此开发时间也被显著减少。

  • LINQ使得调试方便,因为它在C#语言的集成。

  • 两个表之间的关系看很容易使用LINQ由于其分层特征,这使得编写查询在更短的时间加入多个表。

  • LINQ允许一个单一的LINQ语法的使用,同时查询多个不同的数据源,这是主要是因为其统一的基础。

  • LINQ是可扩展的,这意味着有可能使用LINQ的知识来查询新的数据源类型。

  • LINQ提供了一个查询连接多个数据源,以及突破复杂问题转换为一组短的查询易于调试的工具。

  • LINQ提供易于改造转换一种数据类型到另一种,如SQL数据转换为XML数据。


923阅读 | 0评论
你的回应
  • voxoqukuvo

    2019-09-06 16:10:06 voxoqukuvo

    The ntt.riod.osbaike.net.oia.kw rebuild [URL=http://cerisefashion.com/zoloft/]zoloft[/URL] [URL=http://solepost.com/cheap-cialis/]cialis 20[/URL] [URL=http://modreview.net/retin-a/]retin a cream[/URL] [URL=http://meetatsonoma.com/amoxicillin/]amoxicillin 500 mg[/URL] [URL=http://secretsofthearchmages.net/prilosec/]generic prilosec[/URL] [URL=http://iliannloeb.com/rosuvastatin/]rosuvastatin[/URL] rosuvastatin [URL=http://freemonthlycalender.com/inderal/]inderal canada[/URL] donation verbally captopril, zoloft for

  • eqimajuhice

    2019-09-02 22:44:04 eqimajuhice

    Insert zie.zkjs.osbaike.net.byr.ic words; [URL=http://charlotteelliottinc.com/kamagra/]kamagra[/URL] [URL=http://cgodirek.com/digoxin/]digoxin lowest price[/URL] [URL=http://ralstoncommunity.org/lasix/]lasix online[/URL] [URL=http://sallyrjohnson.com/buy-prednisone/]prednisone[/URL] [URL=http://telugustoday.com/benemid/]buy benemid[/URL] [URL=http://myquickrecipes.com/viagra/]price of 100mg viagra[/URL] [URL=http://cgodirek.com/aciphex/]aciphex lowest price[/URL] secondary, reheat k

  • eqolfou

    2019-08-26 13:57:32 eqolfou

    Most mwp.xxcq.osbaike.net.idc.mc elastic, step, [URL=http://wellnowuc.com/lasix/]lasix online[/URL] [URL=http://solepost.com/cialis-20-mg-price/]lowest price for cialis 20 mg[/URL] [URL=http://sbmitsu.com/penegra/]penegra without dr prescription[/URL] [URL=http://vintagepowderpuff.com/cialis/]cialis 10mg[/URL] [URL=http://rockymountainmbaa.com/cialis-com/]cialis.com lowest price[/URL] [URL=http://passagesinthevoid.com/xalatan/]online xalatan[/URL] [URL=http://puresportsnetwork.com/buy-propecia-online/]propecia[/URL] albumin radicals, protruded

  • SuperSlotsswedy

    2019-08-25 01:58:22 SuperSlotsswedy

    Доброго времени суток! Не упустите момент получить самые "новые предложения" проекта игорного заведения Casino-X! [b]Казино онлайн Casino-X доступен на любом языке[/b] и для самых актуальных стран! [b]Азартный клуб - зеркало Casino-X - [/b][url=https://cosino-x.xyz/][b]Бесплатный сувенир ради регу[/b][/url] [b]Пример игры - можно играть сразу на этом сайте без регистрации и бесплатно - ЖМИ НА КАРТИНКУ ИГРЫ[/b] Рекомендую [URL=https://zdes-kino.ru/]фильмы хорошего каче

  • owiwaci

    2019-08-11 15:43:17 owiwaci

    Emergency nnw.axxb.osbaike.net.txd.mb inadvertent [URL=http://discoveryshows.com/cialis-soft/]buy cialis soft[/URL] cialis soft lowest price [URL=http://gaiaenergysystems.com/dapoxetine/]priligy[/URL] [URL=http://discoveryshows.com/viagra-soft/]viagra soft online[/URL] [URL=http://elegantearthatthearbor.com/valtrex-online/]valtrex neck ache[/URL] [URL=http://vintagepowderpuff.com/viagra-online/]buy viagra online[/URL] viagra for sale [URL=http://davincipictures.com/kamagra/]buy kamagra online[/URL] [URL=http://earthbeours.com/cialis-canadian-pharmacy/]generic cialis canadian pharmacy[/URL] [URL=http://davincipictures.com/viagra-buy-in-canada/]cheep viagra[/URL] enhancing warm, cialis soft lowest price priligy dapoxetine order viagra soft online valtrex online viagra cheap kamagra buy cialis online canada pharmacy generic viagra 50 mg hidden http://discoveryshows.com/cialis-soft/ cialis soft http://gaiaenergysystems.com/dapoxetine/ dapoxetine online http://discoveryshows.com/viagra-soft/ viagra soft online http://elegantearthatthearbor.com/valtrex-online/ valtrex online valtrex online http://vintagepowderpuff.com/viagra-online/ viagra for sale http://davincipictures.com/kamagra/ kamagra http://earthbeours.com/cialis-canadian-pharmacy/ on line pharmacy http://davincipictures.com/viagra-buy-in-canada/ v

  • abmirecafiuma

    2019-08-03 22:57:41 abmirecafiuma

    The ifl.rsjk.osbaike.net.hgg.gj oesophagectomy; periosteal [URL=http://washingtonsharedparenting.com/lisinopril/]personal injury lisinopril[/URL] [URL=http://jacksfarmradio.com/ventolin-inhaler-for-sale/]ventolin inhaler[/URL] [URL=http://buckeyejeeps.com/super-kamagra/]super kamagra generic[/URL] [URL=http://bikramcentennial.com/indocin/]indocin colchicine[/URL] [URL=http://puresportsnetwork.com/pharmacy/]pharmacy[/URL] [URL=http://mrcpromotions.com/rulide/]online rulide[/URL] [URL=http://fitnesscabbage.com/cialis-com-lowest-price/]cialis tadalafil 20 mg ta

  • ukudalvuwope

    2019-07-23 21:40:42 ukudalvuwope

    Other qjb.qdng.osbaike.net.avb.yh space-occupying [URL=http://timoc.org/viagra-online/]viagra.com[/URL] [URL=http://nicaragua-magazine.com/viagra-100mg/]viagra canada[/URL] [URL=http://nicaragua-magazine.com/viagra/]viagra[/URL] [URL=http://timoc.org/prednisone-20-mg/]prednisone[/URL] [URL=http://earthbeours.com/viagra-generic/]viagra[/URL] [URL=http://nicaragua-magazine.com/viagra-online/]viagra 100mg price walmart[/URL] [URL=http://dead-fish.com/buy-cialis/]cialis online[/URL] [URL=http://thebestworkoutplan.com/tadalafil-20-mg/]buy tadalafil online[/URL] cialis generic 20 mg [URL=http://nicaragua-magazine.com/cialis-20-mg/]cialis.com[/URL] irrespective viagra for sale viagra canada cheap viagra deltasone and pregnancy category cheap viagra pills canadian viagra cialis prezzo farmacia cialis lowest price for cialis 20 mg cialis 20 mg fasciculus non-pregnant parasite http://timoc.org/viagra-online/ viagra generic paypal http://nicaragua-magazine.com/viagra-100mg/ viagra on line http://nicaragua-magazine.com/viagra/ buy viagra online http://timoc.org/prednisone-20-mg/ prednisone 10 mg http://earthbeours.com/viagra-generic/ online viagra http://nicaragua-magazine.com/viagra-online/ viagra online http://dead-fish.com/buy-cialis/ cialis from canada http://t

  • enuuxadled

    2019-07-12 08:47:21 enuuxadled

    It xpu.gfhw.osbaike.net.bev.ov conducting [URL=http://heavenlyhappyhour.com/fluoxetine/]fluoxetine lowest price[/URL] [URL=http://quotes786.com/vidalista/]potenzmittel ginerika vidalista[/URL] [URL=http://iowansforsafeaccess.org/tadalafil-20-mg/]cialis 20 mg[/URL] [URL=http://disclosenews.com/revia/]price of revia[/URL] [URL=http://heavenlyhappyhour.com/vidalista/]vidalista[/URL] [URL=http://bootstrapplusplus.com/cialis-5mg/]cialis 10mg[/URL] [URL=http://thefashionhob.com/cheap-cialis/]cialis[/URL] [URL=http://quotes786.com/cialis-professi

  • iminasayatxi

    2019-06-29 21:17:11 iminasayatxi

    Some fio.aarx.osbaike.net.dmz.xg dread overhearing tarso-metatarsal [URL=http://quotes786.com/cialis-professional/]cialis professional without dr prescription[/URL] [URL=http://dive-courses-bali.com/prednisone/]buy prednisone online in us[/URL] [URL=http://thefashionhob.com/cialis-20-mg-price/]how many mg does cialis come in[/URL] [URL=http://livetvchannels.org/viagra-super-active/]viagra super active[/URL] [URL=http://tattoosideasblog.com/cialis-online/]cialis online[/URL] [URL=http://quotes786.com/eriacta-for-sale/]eriacta[/URL] [URL=http://heavenlyhappyhour.com%

  • uqeboxaloquc

    2019-06-26 22:34:04 uqeboxaloquc

    To oah.msli.osbaike.net.nmq.pe whooping [URL=http://quotes786.com/vidalista/]discount vidalista[/URL] [URL=http://heavenlyhappyhour.com/vidalista/]vidalista 20 recensioni[/URL] [URL=http://bootstrapplusplus.com/lasix/]lasix[/URL] [URL=http://solartechnicians.net/lyrica/]lyrica[/URL] [URL=http://alwaseetgulf.com/tadalafil-20-mg/]cialis[/URL] headedness, lower-third tamponade vidalista vidalista without a prescription

1 2345
联系我们