A. c# LINq實現sql
varresult=fromarrinsite_jwserver
grouparrbyarr.s_ipintog
selectnew
{
cont=g.Count(),
s_ip=g.Key
};
foreach(varvinresult)
//v.cont
//v.s_ip
B. linq to sql類怎麼用
打開VS2010新建控制台應用程序,然後添加LINQ
to
SQL
Class,命名為DbApp.dbml,新建dbml文件之後,可以打開server
explorer,建立資料庫連接,並將我們新建的表拖到dbml文件中,
2.
可以通過點擊dbml文件空白處,按F4顯示dbml屬性,可以修改Context和生成實體的命名空間
3.
到現在為止VS2010通過工具為我們創建好了數據表對應實體類和數據表操作添,改,刪的方法,現在開始實踐
C. 如何查看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在我們意料之外。呵呵。我的感覺是這樣
D. C# ADO, LINQ, SQL 這三者的區別、聯系
ADO是一套訪問資料庫的技術
Linq是一種概念,包含很多層,C#語言層的select語句、.net 3.5的linq類庫以及底層的data provider
SQL是一種資料庫查詢語言
E. 請問.net為什麼拋棄了linq to sql EF與linq to sql 相比較,前者有哪些優勢
說是拋棄也不太對,因為這部分被合並在Linq to Entity裡面了。
ADO.Net Entity Framework 與Linq to SQL的比較和適用場景:
MSDN上最近發表了一篇Elisa Flasko著的文章,比較了LINQ to SQL與LINQ to Entities適用的場景:
Introcing LINQ to Relational Data
http://msdn2.microsoft.com/en-us/library/cc161164.aspx
作者指出,LINQ to SQL主要的應用場景是針對微軟SQL Server資料庫的快速開發,這些應用的對象模型與資料庫中數據定義的結構間非常類似,幾乎有一一對應的映射關系,這樣你可以使用LINQ to SQL把一些數據表直接映射到.NET類,數據欄位映射到的相應的.NET類的屬性上。作者總結如下:
LINQ to SQL適用之場景
.想使用ORM方案,而且資料庫數據定義與對象模型是1:1對應關系
. 想使用ORM方案,而且對象繼承結構儲存在單一數據表中(單表繼承)
. 想使用原始CLR類,而不是使用生成的類或需要從某個基類繼承而來,或者需要實現某個介面
. 想使用LINQ來編寫查詢
. 想使用ORM,但需要性能非常好,可以通過存儲過程和編譯的查詢來優化性能
LINQ to Entities主要的應用場景針對的是需要非常靈活和更復雜的映射的場景,特別是在企業應用方面,而且需要訪問其他的資料庫系統。在這些場景中,數據表的結構與對象模型也許差別很大,而且應用開發人員往往並不擁有生成或修改資料庫數據定義的權利。
LINQ to Entities適用之場景 :
.想要開發針對微軟SQL Server或其他資料庫系統的應用
. 想要定義領域模型,並以之為持久層的基礎
. 想要使用ORM方案,對象也許與資料庫數據定義有1:1對應關系,也許結構迥異
. 想要使用支持單表繼承和其他儲存方案(每類一表,每具體類一表)的ORM方案
. 想使用LINQ來編寫查詢,並且查詢可以在不同資料庫系統下工作
. 想使用ORM,但需要性能非常好,可以通過存儲過程和編譯的查詢來優化性能
F. 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) 。
G. c#和.net有什麼區別,sql和linq有什麼區別。
C#是工具,.net是環境,在環境中可以使用多種工具。比如C#啦,VB啦等等。
H. LINQ和SQL混合的也可以啊,有用到Linq就行
what
I. LINQ和LINQ to SQL有區別嗎之間關系是什麼
LINQ是集成化查詢語言,可以用於對集合進行查詢。
linq
to
sql是linq的擴展框架,支持linq針對SQL資料庫進行查詢(將查詢的條件轉化為SQL語句)
J. 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本身上來就,效率並不差的!