自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linq語句問題的解決方法

開發(fā) 后端
這里介紹Linq語句,Navigation 類提供取得指定 Url 權(quán)限的功能,使用基本的Linq語句。包括介紹Hide 參數(shù)考慮改成和 Permission 相似,則可以控制每一項(xiàng)在不同權(quán)限下的顯示,比單純的全局 Hide 要靈活得多。

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

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

  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è)分類下沒有任何項(xiàng)目,則不顯示這個(gè)分類,所以,取 Index 要復(fù)雜一些,要根據(jù)相應(yīng)的權(quán)限進(jìn)行分組,所以相應(yīng)的Linq語句也復(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ù),不過,因?yàn)楦袷绞呛軜?biāo)準(zhǔn)的數(shù)據(jù)庫格式,所以,要把這個(gè)配置項(xiàng)放入數(shù)據(jù)庫表里,或者序列化成 XML,也都是非常方便的  —— 雖然我認(rèn)為這個(gè)必要性不高。

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

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

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

【編輯推薦】

  1. LINQ Expression tree分析
  2. Linq調(diào)用數(shù)據(jù)訪問服務(wù)
  3. Linq實(shí)體繼承簡單描述
  4. Linq DataContext淺談
  5. Linq DataLoadOptions描述
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2010-02-23 13:07:07

CentOS gcc

2009-06-12 11:06:56

Java heap s

2009-07-01 18:14:36

JSP亂碼

2010-10-15 11:22:24

MySQL復(fù)制表結(jié)構(gòu)

2011-05-06 17:25:58

硒鼓

2009-02-26 11:13:41

Weblogic中間件JSP

2009-12-28 10:56:45

WPF Image

2022-04-02 20:27:30

ETS操作系統(tǒng)鴻蒙

2019-10-11 19:45:28

SparkSQLHiveHadoop

2010-07-22 14:05:33

krb5-telnet

2009-12-14 11:06:18

2009-07-02 13:26:32

JSP中文亂碼

2009-09-15 17:46:08

C#綁定句柄無效

2009-11-30 10:49:18

2009-07-09 17:14:11

Incompatibl

2010-12-27 10:48:10

VirtualboxFreedos

2010-06-09 09:39:42

Opensuse雙系統(tǒng)

2022-04-06 10:09:17

云服務(wù)云計(jì)算

2011-09-06 10:00:10

WindowsVist

2010-07-15 14:01:12

telnet亂碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)