linqsql
A. LINQ和LINQ to sql有区别吗之间关系是什么
本质上没什么区别,都指的是同一种概念,专门为sqlserver数据库服务,就像MySql专门为PHP量身打照一样,大部分人为了上口一般叫Linq。
B. 如何查看linq生成的sql
linq使用对象的方式来操作数据库。最后根本的还是生成原始的sql。但是对象的方式掩盖了很多原本的sql面貌可能会是我们不明白对应的sql是什么。还好linq可以输出sql语句
DataClassesDataContext dc = new DataClassesDataContext();
这个对象提供的日志功能。就是输出对应的sql语句。在控制台应用程序下。使用dc.console(有误)可以直接输出显示对应的sql语句。
在windonw和web程序下面可以建立一个txt文件日志。把生成的sql记录下来。代码比较简单了
DataClassesDataContext dc = new DataClassesDataContext();
StreamWriter sw = new StreamWriter(Server.MapPath("sqlLog.txt"), true); // Append
dc.Log = sw;
//然后是linq的相关数据操作
sw.Flush();
sw.Close();
就这样对应的sql语句就记录到sqlLog.txt文件中了。
我们可能会发现生成的sql在我们意料之外。呵呵。我的感觉是这样
C. c# LINq实现SQL
varresult=fromarrinsite_jwserver
grouparrbyarr.s_ipintog
selectnew
{
cont=g.Count(),
s_ip=g.Key
};
foreach(varvinresult)
//v.cont
//v.s_ip
D. Linq和sql的正确发音
Linq = link
SQL = see q well 连读就是[si:kwel]
看读音也能大体知道个人水平,一般人容易读错.把 Linq 读为 link cue,把SQL读为 色扣.这种发音是不准的,只能说是不正统,但是不影响交流.
E. 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) 。
F. 如何查看LINQ执行的SQL语句
如何查看某个用户执行过的sql语句
--SYS窗口
SQL> select sql_text from v$sql where parsing_schema_name='SCOTT'
2 order by last_load_time desc;
no rows selected
SQL> /
SQL_TEXT
-------------------------------------------------------------------------------
select * from dept
SQL>
--SCOTT窗口
SQL> show user
USER is "SCOTT"
SQL> select * from dept;
DEPTNO DNAME LOC
G. LINQ to 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强大的智能感知功能的帮助。
H. 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本身上来就,效率并不差的!
I. linq to sql select和where的区别
这两个关键字都对查询结果有作用,但where子句是条件判定,起到筛选作用。select子句产生结果序列的类型,决定了查询变量的类型。在最简单情况下,select子句就指定局部变量,使得返回序列包含了与数据源一样的类型。然而,select子句也提供将源数据变换为新类型。另外一个很重要的功能是,查询表达式必须用select子句或group子句结尾。
J. linq查询速度快还是sql啊
linq 只是被封装过的SQL,与SQL比较,没有绝对的快慢之分,查询方法得当才能获得最佳的查询速度。