当前位置:首页 » 编程语言 » linq和sql的正确发音
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

linq和sql的正确发音

发布时间: 2022-06-09 14:10:05

① linq to sql语句和sql语句一样吗

大概差不多
sql是这样:select 列名 from 表名 where 条件
linq是:
DataClasses1DataContext db= new DataClasses1DataContext();
var t = from s in db.表名
where s.列名=?
select s;

② LINQ和LINQ to SQL有区别吗之间关系是什么

本质上没什么区别,都指的是同一种概念,专门为sqlserver数据库服务,就像MySql专门为PHP量身打照一样,大部分人为了上口一般叫Linq。

③ 弱弱的问一个Linq和数据库sql性能的问题

对的。一个是从数据库拿出所有数据再筛选,一个是直接在数据库查找符合条件的数据,效率当然不一样。LINQ
TO
SQL的确存在性能问题,但是LINQ
TO
XML等其他功能还是很好用的。

④ Linq和sql的正确发音

Linq
=
link
SQL
=
see
q
well
连读就是[si:kwel]
看读音也能大体知道个人水平,一般人容易读错.把
Linq
读为
link
cue,把SQL读为
色扣.这种发音是不准的,只能说是不正统,但是不影响交流.

⑤ 求总结linq与sql语法比较

linq是面向对象的sql。也就是说,sql是向关系型数据库的查询,而linq实际上是对内存里的数据的查询。

虽然linq原来是对象查询,但经过ms的努力,可以通过表达式分析与实体到关系的映射(linq to sql),把linq转换为sql语句或是对xml的查询(linq to xml)。

因此,这种技术就成了对象到数据库记录的一个方便的映射、转化与操作的工具,你再也不必去去根据不同的情况用字符串拼接的办法生成sql,而是专心于对象模型的处理即可,你对于对象的修改最终都会被转换为对应的update, insert, delete等sql语句,在你submit时全部提交到数据库中。

综尔言之,linq to sql是一个数据库到对象结构的一个中间层, 他把对关系数据的管理转变为对象的操作,屏蔽了麻烦的sql,而且,还可以得到vs强大的智能感知功能的帮助。

LINQ,语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。

基本概念
从技术角度而言,LINQ定义了大约40个查询操作符,如select、from、in、where以及orderby(C#)中。试用这些操作可以编写查询语句。不过,这些查询还可以基于很多类型的数据,每个数据类型都需要一个单独的LINQ类型。 经过了最近 20 年,面向对象编程技术( object-oriented (OO) programming technologies )在工业领域的应用已经进入了一个稳定的发展阶段。程序员现在都已经认同像 类(classes)、对象(objects)、方法(methods)这样的语言特性。考察现在和下一代的技术,一个新的编程技术的重大挑战开始呈现出来,即面向对象技术诞生以来并没有解决降低访问和整合信息数据( accessing and integrating information )的复杂度的问题。其中两个最主要访问的数据源与数据库( database )和 XML 相关。 LINQ 提供了一条更常规的途径即给 .Net Framework 添加一些可以应用于所有信息源( all sources of information )的具有多种用途( general-purpose )的语法查询特性( query facilities ),这是比向开发语言和运行时( runtime )添加一些关系数据( relational )特性或者类似 XML 特性( XML-specific )更好的方式。这些语法特性就叫做 .NET Language Integrated Query (LINQ) 。 包含 DLinq 和 XLinq
基础知识
1. LINQ的读法:(1)lin k (2)lin q 2. LINQ的关键词:from, select, in, where, group by, order by … 3. LINQ的注意点:必须以select或者是group by 结束。 4. LINQ的语义: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量中被查询的值 [group by 条件] LINQ的查询返回值的类型是临时变量的类型,可能是一个对象也可能是一个集合。并且LINQ的查询表达式是在最近一次创建对象时才被编译的。LINQ的查询一般跟var关键字一起联用 (什么是var?匿名对象) 。 5. LINQ的全称:Language-Integrated Query 6. LINQ的分类:LINQ to Object, LINQ to XML, LINQ to SQL, LINQ to ADO.NET 7. 命名空间:System.Linq; 注意:Linq是在.NET Framework 3.5 中出现的技术,所以在创建新项目的时候必须要选3.5或者更高版本,否则无法使用。 选择3.5或更高版本的.NET Framework之后,创建的新项目中会自动包含System.Linq的命名空间。
语法实例
C#3.0 LINQ 查询语法 首先来看一个很简单的LINQ查询例子,查询一个int 数组中小于5的数字,并按照大小顺序排列: class Program { static void Main(string[] args) { int[] arr = new int[] { 8, 5, 89, 3, 56, 4, 1, 58 }; var m = from n in arr where n < 5 orderby n select n; foreach (var n in m) { Console.WriteLine(n); } Console.ReadLine(); } } 上述代码除了LINQ查询语法外,其他都是我们所熟悉的语法,而LINQ查询语法跟SQL查询语法很相似,除了先后顺序。 Q:为何 LINQ 查询语法是以 from 关键字开头的,而不是以 select 关键字开头的?select 开头这种写法跟SQL的写法更接近,更易懂呀? A:简单来说,为了IDE的智能感知(Intelisence)这个功能,select 关键字放在后面了。 编程语言以 select 开头写LINQ查询语法不是没出现过,你如果使用过2005年的VB9 CTP 版本,那时候VB9的LINQ查询语法就是 select 关键字在前面,但是 select 关键字在前面,在做智能感知(Intelisence)时候就很头大。经过微软IDE组的权衡,确定了把 from 关键字放在最前面。 那时候 VB9 LINQ的查询语法还是 select 参数在最前面。不过后来 VB9 测试版改成了跟 C# 一样的做法, from 关键字放在最前面了。 更详细的解释,来自装配脑袋 假设你要书写这样的代码:Select p.Name, p.Age From p In persons Where xxx ,代码是一个个字符输入的。 我们在写到 p in persons 之前,p 的类型是无法推测的,所以写 Select p. 的时候,Name之类的属性不会弹出智能提示来。 这样就需要先去写 From 这句,再回来写 Select。 微软IDE组经过反复考虑决定,还不如就把 Select 写到后面了。于是编程语言中的写法就确定这样来写了。 VB9 的这个变化可以参看这篇博客: Select/From vs. From/Select revisited... 我们再来看一个稍稍复杂的LINQ查询: 在我们罗列的语言字符串中,我们希望按照字符长短,分类罗列出来,实现代码如下: static void Main(string[] args) { string [] languages = {"Java","C#","C++","Delphi","VB.net","VC.net","C++ Builder","Kylix","Perl","Python"}; var query = from item in languages orderby item group item by item.Length into lengthGroups orderby lengthGroups.Key descending select lengthGroups; foreach (var item in query) { Console.WriteLine("strings of length {0}",item.Key); foreach (var val in item) { Console.WriteLine(val); } } Console.ReadLine(); } 其中的 into 关键字表示 将前一个查询的结果视为后续查询的生成器,这里是跟 group by 一起使用的。 LINQ中的Group by不要跟 SQL 中的Group by 混淆,SQL 由于是二维结构,Group by 的一些逻辑受二维结构的约束,无法像 LINQ 中的Group by 这么灵活。
Linq的内部执行原理浅析
LINQ(Language Integrated Query)是Visual Studio 2008中的领军人物。借助于LINQ技术,我们可以使用一种类似SQL的语法来查询任何形式的数据。目前为止LINQ所支持的数据源有SQL Server、XML以及内存中的数据集合。开发人员也可以使用其提供的扩展框架添加更多的数据源,例如MySQL、Amazon甚至是Google Desktop。 一般来讲,这类查询语句的一个重要特点就是可以并行化执行。虽然有些情况下并行可能会带来一些问题,但这种情况非常少见。这样也就水到渠成地引出了PLINQ这个并行处理的LINQ类库。 PLINQ原名为Parallel LINQ,支持XML和内存中的数据集合。执行于远程服务器上的查询语句(例如LINQ to SQL)显然无法实现这个功能。 将LINQ语句转换为PLINQ语句极为简单——只需要在查询语句中From子句所指定的数据源的最后添加.AsParallel()即可。随后Where、OrderBy和Select子句将自动改为调用这个并行的LINQ版本。 据MSDN Magazine介绍,PLINQ可以以三种方式执行。第一种是管道处理:一个线程用来读取数据源,而其他的线程则用来处理查询语句,二者同步进行——虽然这个单一的消费线程可能并不那么容易与多个生产线程同步。不过若是能够仔细配置好负载平衡的话,仍然会极大地减少内存占用。 第二种模式叫做“stop and go”,用于处理结果集需要被一次返回时(例如调用ToList、ToArray或对结果排序)的情况。在这种模式下,将依次完成各个处理过程,并将结果统一返回给消费线程。这个模式在性能上将优于第一种模式,因为它省去了用来保持线程同步所花费的开销。 最后一种方法叫做“inverted enumeration”。该方法并不需要实现收集到所有的输出,然后在单一的线程中处理,而是将最终调用的函数通过ForAll扩展传递到每个线程中。这是目前为止最快的一种处理模式,不过这需要传递到ForAll中的函数是线程安全的,且最好不包含任何lock之类的互斥语句。 若是PLINQ中任意的一个线程抛出异常,那么所有的其他线程将会被终止。若是抛出了多个异常,那么这些异常将被组合成一个MultipleFailuresException类型的异常,但每个异常的调用堆栈仍会被保留。 关于LINQ的技巧从大的方面来看它能给开发团队带来的好处: 1、无需复杂学习过程即可上手 2、编写更少代码即可创建完整应用。 3、更快开发错误更少的应用程序。 4、无需求助奇怪的编程技巧就可合并数据源。 5、让新开发者开发效率更高。

⑥ C#3.0使用LINQ和sql有什么区别

sql是sqlLINQ,语言级集成查询(Language INtegrated Query) 经过了最近 20 年,面向对象编程技术( object-oriented (OO) programming technologies )在工业领域的应用已经进入了一个稳定的发展阶段。程序员现在都已经认同像 类(classes)、对象(objects)、方法(methods)这样的语言特性。考察现在和下一代的技术,一个新的编程技术的重大挑战开始呈现出来,即面向对象技术诞生以来并没有解决降低访问和整合信息数据( accessing and integrating information )的复杂度的问题。其中两个最主要访问的数据源与数据库( database )和 XML 相关。 LINQ 提供了一条更常规的途径即给 .Net Framework 添加一些可以应用于所有信息源( all sources of information )的具有多种用途( general-purpose )的语法查询特性( query facilities ),这是比向开发语言和运行时( runtime )添加一些关系数据( relational )特性或者类似 XML 特性( XML-specific )更好的方式。这些语法特性就叫做 .NET Language Integrated Query (LINQ) 。

⑦ Linq和LinqtoSql有什么区别一般做项目用哪种

Linq是微软在.net3.0推出的一种新的数据访问和处理的方式,来解决过去处理集合对象数据所遇到的种种困难。其中在C#3.0和VB9中分别引入了和SQL相似的Linq语法,使得现在操作各种数据对象变得非常容易而且可读性更好。

Linq To Sql是微软默认提供的LinqProvider的一种,其他的还有LinqToDataSet LinqToXml LinqToEntity等。

平时开发项目可以大量的使用linq,他会让你在处理大量集合数据的时候提高效率。而Linq2Sql算是一个ORM框架,可以用来减轻数据访问的负担,如果你知道Hibernate之类的ORM框架的话,就很容易理解他了

⑧ SQL与LINQ的区别是什么啊

确实就是语法差不多。
那么你了解面向对象吗?
LINQ(LINQ to SQL)操作的都是对象(数据库表映射成实体对象)

你必须对对象有深刻认识,才能体会ORM的便捷。

⑨ LINQ比一般的SQL语句效率更高吗

Linq是一个范围比较大的概念,它其中不单单只有linq to sql,还有相应的linq to xml等等。所以拿linq 与SQL语句相比,没有可比性的。

但如果拿linq to sql相比的话,与SQL还是有很大的可比性的。一般情况下,你必须要明白你所指的效率是哪一方面?是数据库执行效率?还是整体成品软件运行效率?还是开发效率?

开发效率上linq to sql显然要比SQL的效率要高很多,我们使用linq to sql 可以很容易实现编程,其中的代码量也大大减少。所以如果从开发方面linq to sql的效率是毫无疑问要高于直接的SQL与数据库连接。

如果从编方译考虑,这个一般情况下,linq to sql是引入的新的技术,效率肯定是不如SQL的。好在这个编译的部分不需要开发人员或是任何用户的参与,所以即是效率差一点,对软件来说没有任何的影响。

最后一部分你可以比较感兴趣,谁对数据库的连接更快,执行效率更好?答案是linq to sql而不是直接的语句。一般我们使用直接的语句要求的是即是的执行,但事实上很多时间我们根本不需要那么多,linq to sql其实说明了就是会自动生成与表结构同样的一些对象。而这些对象在联系数据库时也是直接编译好的语句,直接联系时,两者效率是相同的。

但是,如果我们对数据进行处理时,你就会发现,linq to sql的效率为什么会更高了!因为他在读取时不但会读取当前表来填充生成的对象,同时还是延时读其相关表,为你使用有关系的表提供了极大的方便。那么你的相关表的读取效率要快了!

但不管怎么样,他们都是在站立在了ado.net的基础之上的,只不过有些自动生成了,根本不需要你再去做而已。唯一效果比较差的是,linq to sql读出的数据在系统中被转化了,同时它效率虽然变差一些,但是却带来了另一个好处,就是我们常说的SQL注入问题不再出现,你所输入的任何东西都会变成了字符串了。

其实ADO.net的方案中我们使用了datareader方案的效高是比较高的,但是对于更新却是极差的。而使用数据适配器的方案效率较底一些,更对于数据的更新是相当好的,而对于linq to sql其实它是使用数据缓存方案,也就是说linq to sql其实将数据库中的数据缓存到了对象中,如果对象发生了更改,有必须过行返馈时,它是可以进行反馈的,而是这种反馈是可控制的,事务性的。从各方面给我们带来了好处。

我们可以在更新了很多内容之后再去提交更改,那么这种效率论从理解上还是效率上都优化你的原来的语句的!所以linq to sql并非在性能上的降低,而是一种提高。

严格说来,linq to sql并不是节省了代码,相反它增加了很多代码,便幸运的是,这些代码都是由linq to sql框架自动生成的。若是换作人工,容易出错的。但在使用时,由于框架完成了大部分的代码,我们再使用linq to sql加上lambad表达式或查询表达式,我们的代码就变得极少且极简洁了!而如果使用lambad表达式或查询表达式时,它的效率显然不如直接SQL来的直接。读取效率会变得差一些的!

这是因为lambda表达式或查询表达式是一个动态编译的效果,而不是直接编译好的,他要对语句进行编译与优化以何证效率,但性能上因为多了一重处理,效率没有SQL来的直接。但一般情况下,使用linq to sql配合查询表达式或lambad表达式时,效率虽然稍差,但是带来的却是代码的简洁与易理解性,如果不配合查询表达式与lambad表达式,linq to sql的优劣还不利用体现。所以关非linq to sql的效率差,而是我们使用了查询表达式的动态编译导致了效率较差。就linq to sql本身上来就,效率并不差的!