日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Linq語(yǔ)句問(wèn)題的解決方法

學(xué)習(xí)Linq時(shí),經(jīng)常會(huì)遇到Linq語(yǔ)句問(wèn)題,這里將介紹Linq語(yǔ)句問(wèn)題的解決方法。

創(chuàng)新互聯(lián)公司網(wǎng)站設(shè)計(jì),為客戶(hù)量身定制各類(lèi)網(wǎng)站建設(shè)業(yè)務(wù),包括企業(yè)型、電子商務(wù)型、成都響應(yīng)式網(wǎng)站建設(shè)、行業(yè)門(mén)戶(hù)型等各類(lèi)網(wǎng)站,實(shí)戰(zhàn)經(jīng)驗(yàn)豐富,成功案例眾多。以客戶(hù)利益為出發(fā)點(diǎn),創(chuàng)新互聯(lián)公司網(wǎng)站制作為客戶(hù)規(guī)劃、按需定制開(kāi)發(fā)符合企業(yè)需求、帶有營(yíng)銷(xiāo)價(jià)值的網(wǎng)絡(luò)建站方案認(rèn)真對(duì)待每一個(gè)客戶(hù),我們不用口頭的語(yǔ)言來(lái)吹擂我們的優(yōu)秀,上1000+的成功案例見(jiàn)證著我們的成長(zhǎng)。

Navigation 類(lèi)提供取得指定 Url 權(quán)限的功能,使用基本的Linq語(yǔ)句:

 
 
 
  1. public static int GetPermission(string Url)  
  2. {  
  3. var item = Links.Where(p => p.Url == Url).ToList();  
  4. if (item.Count > 0)  
  5. {  
  6. return item[0].Permission;  
  7. }  
  8. return 0;  

因?yàn)?,在生?html 的時(shí)候,考慮了如果按照相應(yīng)的權(quán)限,一個(gè)分類(lèi)下沒(méi)有任何項(xiàng)目,則不顯示這個(gè)分類(lèi),所以,取 Index 要復(fù)雜一些,要根據(jù)相應(yīng)的權(quán)限進(jìn)行分組,所以相應(yīng)的Linq語(yǔ)句也復(fù)雜一些,使用了 group by:

 
 
 
  1. public static int GetIndex(string Url, int Permission)  
  2. {  
  3. int id = FindCategoryId(Url);  
  4. var item = from p in Links where (p.Permission & Permission) == 
    Permission && p.Category_Id != 0  
  5. group p by p.Category_Id into g select new { Category_Id = g.Key };  
  6. var i = item.ToList().FindIndex(p => p.Category_Id == id);  
  7. return i < 0 ? 0 : i;  
  8. }  
  9.    
  10. public static int FindCategoryId(string Url)  
  11. {  
  12. var item = Links.Where(p => p.Url == Url).ToList();  
  13. if (item.Count > 0)  
  14. {  
  15. return item[0].Category_Id;  
  16. }  
  17. return 0;  

雖然我現(xiàn)在使用的是內(nèi)存里的數(shù)據(jù),不過(guò),因?yàn)楦袷绞呛軜?biāo)準(zhǔn)的數(shù)據(jù)庫(kù)格式,所以,要把這個(gè)配置項(xiàng)放入數(shù)據(jù)庫(kù)表里,或者序列化成 XML,也都是非常方便的  —— 雖然我認(rèn)為這個(gè)必要性不高。

從實(shí)現(xiàn)來(lái)看,這個(gè)方法的速度應(yīng)該不會(huì)很快,不過(guò),因?yàn)閿?shù)據(jù)量小,而且對(duì)于頁(yè)面來(lái)說(shuō),這些在內(nèi)存里做的手腳只能算小Case,所以沒(méi)有明顯感覺(jué)速度上有任何差異。

不過(guò),目前對(duì)于這個(gè)方案,還有一些不滿(mǎn)意,比如,Hide 參數(shù)考慮改成和 Permission 相似,則可以控制每一項(xiàng)在不同權(quán)限下的顯示,比單純的全局 Hide 要靈活得多。再比如,目前沒(méi)有判斷是否會(huì)出現(xiàn)兩條分割線(xiàn)等等。

另外一種實(shí)現(xiàn)方案是,把數(shù)據(jù)的定義放在每一個(gè)頁(yè)面里,這樣的話(huà),雖然設(shè)置分散到了每一個(gè)頁(yè)面,但是卻更符合實(shí)際情況,而且,頁(yè)面 Url 也可以通過(guò)反射得到,刪除頁(yè)面或者頁(yè)面改名都更簡(jiǎn)單,也許是更好的解決方案吧。以上介紹Linq語(yǔ)句。

【編輯推薦】

  1. LINQ Expression tree分析
  2. Linq調(diào)用數(shù)據(jù)訪(fǎng)問(wèn)服務(wù)
  3. Linq實(shí)體繼承簡(jiǎn)單描述
  4. Linq DataContext淺談
  5. Linq DataLoadOptions描述

當(dāng)前名稱(chēng):Linq語(yǔ)句問(wèn)題的解決方法
網(wǎng)頁(yè)地址:http://www.dlmjj.cn/article/dhgecej.html