日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
LinqToSql缺點(diǎn)的認(rèn)識(shí)和解決

本文向大家介紹Linq To Sql缺點(diǎn),可能好多人還不了解Linq To Sql缺點(diǎn),沒(méi)有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。

創(chuàng)新互聯(lián)專(zhuān)注于叢臺(tái)網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供叢臺(tái)營(yíng)銷(xiāo)型網(wǎng)站建設(shè),叢臺(tái)網(wǎng)站制作、叢臺(tái)網(wǎng)頁(yè)設(shè)計(jì)、叢臺(tái)網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造叢臺(tái)網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供叢臺(tái)網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。

Linq To Sql是Microsoft開(kāi)發(fā)的針對(duì)解決data!=object問(wèn)題的新技術(shù)。在筆者的一系列的文章中,對(duì)它已經(jīng)做了大量的介紹。現(xiàn)在,筆者將從經(jīng)驗(yàn)的角度,談?wù)凩inq To Sql缺點(diǎn).

Linq To Sql缺點(diǎn)

很久前,有個(gè)網(wǎng)友問(wèn)到這么一個(gè)問(wèn)題。 他在界面上,有個(gè)DataView,里面綁定了一些Column,然后,他勾選那一列,就按某列排序。其傳回的參數(shù)是列的名字。然后問(wèn)我,該怎么用Dlinq 來(lái)實(shí)現(xiàn)。

在以前拼接Sql語(yǔ)句的年代,這個(gè)很簡(jiǎn)單,一個(gè)" order by " + string,想按什么排就按什么來(lái)排。而現(xiàn)在,dlinq是用是一個(gè)對(duì)象的屬性,已經(jīng)不可能拼接了。我當(dāng)時(shí)給他的答案是這樣的。

 
 
 
  1. private void Methods(string orderId)  
  2. {  
  3. var q = db.Customers.Select(c=>c);  
  4. switch(orderId)  
  5. {  
  6. case "ID":  
  7. qq = q.OrderBy(c=>c.ID);  
  8. break;  
  9. case "Name":  
  10. qq = q.OrderBy(c=>c.Name);  
  11. break;  
  12. default:  
  13. break;  
  14. }  
  15. var result = q.ToList();  

我那時(shí)也沒(méi)有想出一個(gè)更好的方案來(lái)。而后告訴他,去查下Compiled Query.說(shuō)不定,可以找到更方便的。后來(lái)我才在這個(gè)例子中,看到更方便的。

 
 
 
  1. var query =db.Customers.Where
    ("City == @0 and Orders.Count>= @1", "London", 10).  
  2. OrderBy("CompanyName").  
  3. Select("New(CompanyName as Name, Phone)");  

在這里OrderBy直接接收的就是列的名字。再仔細(xì)一看,好像Where里是Linq的語(yǔ)句哎,那OrderBy也該是linq語(yǔ)句。后來(lái),我把CompanyName換成小寫(xiě)的,一跑過(guò)了。莫非真的是列的名字?出個(gè)難題吧。找了一個(gè)列名,是帶空格的,重新來(lái)建這個(gè)工程.一跑,錯(cuò)了!把列名用中國(guó)擴(kuò)號(hào)擴(kuò)起來(lái)了,也是錯(cuò)了???,只是動(dòng)態(tài)構(gòu)造Expression Tree而已,永遠(yuǎn)都不能直接接收列的名字。這個(gè)例子看著是很簡(jiǎn)單,可不知道你有沒(méi)有注意到它有一個(gè)80多k的Dynamic.cs文件。更有意思的事情是,它的名稱(chēng)空間是System.Linq.Dynamic.看樣子,ms本來(lái)是打算把它加在.net?。?5中嗎.不曉得為什么放到了例子中了。這個(gè)名稱(chēng)空間下,其主要內(nèi)容就是動(dòng)態(tài)構(gòu)造Expression Tree. 和Linq To Sql進(jìn)階系列(六)用object的動(dòng)態(tài)查詢(xún)篇 一文中的方法類(lèi)似。只是,它還包含了解析字符串部分.

從上面那個(gè)例子中,可以看出,Linq To Sql在這種動(dòng)態(tài)構(gòu)造語(yǔ)句時(shí),比拼接sql麻煩很多。在Linq To Sql進(jìn)階系列(六)用object的動(dòng)態(tài)查詢(xún)篇 一文中,筆者極力推薦使用object的查詢(xún)。這符合Linq To Sql的設(shè)計(jì)原則。因?yàn)?,它主要是為了解決data!=objects 的問(wèn)題而產(chǎn)生的.它所有的操作均針對(duì)object,那就讓我們使用object的查詢(xún)吧.


本文名稱(chēng):LinqToSql缺點(diǎn)的認(rèn)識(shí)和解決
本文地址:http://m.5511xx.com/article/cojeesc.html