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

linq to sql多表基礎(chǔ)描述

開(kāi)發(fā) 后端
linq的編寫方式看起來(lái)很拉風(fēng),但他并不是很么的完美,有利肯定有弊.推出linq這么長(zhǎng)時(shí)間了.也沒(méi)見(jiàn)市場(chǎng)上很熱門.用的人還是很少.這次在開(kāi)發(fā)的過(guò)程中.最讓我抓狂的就是linq to sql多表關(guān)聯(lián)與動(dòng)態(tài)條件查詢.

本文主要闡述linq to sql多表關(guān)聯(lián)與動(dòng)態(tài)條件查詢,雖然好多人對(duì)linq很不熟悉,但是本文作者簡(jiǎn)言較簡(jiǎn)單,還是很容易理解的。

在去年的有接觸過(guò)linq,也小試了一刀.但僅僅是簡(jiǎn)單的from并沒(méi)有深入去揣摩.這次正好用MVC開(kāi)發(fā)這套系統(tǒng).所以使用linq 是必須的.

之前我也有說(shuō)過(guò)linq的編寫方式看起來(lái)很拉風(fēng),但他并不是很么的***,有利肯定有弊.要不microsoft推出linq這么長(zhǎng)時(shí)間了.也沒(méi)見(jiàn)市場(chǎng)上很熱門.至今在我看來(lái).用的人還是很少.這次在開(kāi)發(fā)的過(guò)程中.最讓我抓狂的就是linq to sql多表關(guān)聯(lián)與動(dòng)態(tài)條件查詢.

雖然網(wǎng)上有很多資料是linq to sql多表關(guān)系當(dāng)然也有動(dòng)態(tài)條件查詢的.但是并沒(méi)有找到我想要的答案.與是只能靠自己摸索了.下面就是我要實(shí)現(xiàn)的結(jié)果,linq to sql多表關(guān)聯(lián).INNER JOIN + LEFT JOIN

  1. var q =  
  2.   (from ar in db.Articles  
  3.    join c in db.Categories on ar.ParentId  
  4.    equals c.Id  
  5.    join sc in db.Categories on ar.SubId equals sc.Id into scate  
  6.    from sc in scate.DefaultIfEmpty()  
  7.    where ar.IsPrivate == false  
  8.    orderby ar.CreateTime descending   
  9.    __select new  
  10.     {  
  11.        ararticle = ar,  
  12.        pcate = c,  
  13.        scscate = sc  
  14.     }).Take(3); 

linq to sql多表動(dòng)態(tài)條件查詢:

  1. Expression> lambda = ar => (1==1);  
  2.             if (id != null)  
  3.                 lambda = (ar => ar.Id == id);   
  4.             var article = db.Articles.OrderByDescending
  5. (a => a.CreateTime).Where(lambda);  
  6.      return View(article);  

linq to sql多表,如果你要根據(jù)條件不同顯示相應(yīng)的數(shù)據(jù)的話,只要在q對(duì)像后追加Where()就OK:

  1. int Record__count = q.Count(); //得到記錄數(shù)     
  2.            int page = PagerHelper.GetCurrentPage();     
  3.            int SkipIndex = (page-1)__ * 5;  
  4.            var q = (from ar in db.Articles  
  5.     join c in db.Categories on ar.ParentId  
  6.         equals c.Id  
  7.     join sc in db.Categories on ar.SubId equals sc.Id into scate  
  8.     from sc in scate.DefaultIfEmpty()  
  9.     where ar.IsPrivate == false  
  10.     orderby ar.CreateTime descending  
  11.     __select new  
  12.     {  
  13.         ararticle = ar,  
  14.         pcate = c,  
  15.         scscate = sc  
  16.     });.Skip(SkipIndex).Take(5); 

以上就是對(duì)linq to sql多表的詳細(xì)闡述。

【編輯推薦】

  1. 深入淺出 LINQ表達(dá)式
  2. LINQ基礎(chǔ)學(xué)習(xí)之LINQ to XML
  3. 學(xué)習(xí)心得LINQ to XML
  4. 淺析LINQ開(kāi)發(fā)技術(shù)之LINQ to XML
  5. 詳細(xì)闡述linq動(dòng)態(tài)排序
責(zé)任編輯:阡陌 來(lái)源: 百度空間
相關(guān)推薦

2009-09-10 10:37:15

LINQ to SQL

2009-09-16 09:38:27

LINQ To SQL

2009-09-17 18:05:15

linq to sql

2009-09-17 17:34:23

linq to sql

2009-09-15 11:14:33

LINQ to SQL

2009-09-15 13:14:01

LINQ to SQL

2009-09-18 16:41:46

Linq to sql

2009-09-17 11:08:55

LINQ查詢表達(dá)式

2009-09-15 10:02:44

Linq to SQL

2009-09-09 15:37:27

Linq DataLo

2009-09-14 15:43:12

Linq Settin

2009-09-10 15:26:03

Linq City集合

2009-09-14 10:57:46

LINQ入門

2009-09-09 15:28:43

Linq to obj

2009-09-15 16:26:36

Linq orderb

2009-09-18 16:00:07

LINQ架構(gòu)

2010-08-24 09:47:05

LINQ to SQL

2009-09-15 10:35:11

linq多表查詢

2009-09-11 10:20:36

Linq擴(kuò)展方法

2009-09-08 09:24:50

LINQ查詢
點(diǎn)贊
收藏

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