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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
詳解LINQtoJavaScript的幾種方法

LINQ TO SQL概述

10年積累的網(wǎng)站制作、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有張家川回族自治免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

LINQ TO SQL是LINQ技術(shù)在數(shù)據(jù)庫方面的應(yīng)用。數(shù)據(jù)庫技術(shù)從OLEDB,ODBC到ADO,在到ADO.NET到現(xiàn)在的LINQ TO SQL,讓程序員操作數(shù)據(jù)庫越來越簡單。

LINQ TO JAVASCRIPT概述

LINQ TO  JAVASCRIPT 宗旨就是代碼風(fēng)格像 LINQ TO SQL 一樣操作數(shù)據(jù)。

LINQ TO  JAVASCRIPT 數(shù)據(jù)格式為 JSON (JavaScript Object Notatio)

那我們看看  linq to javascript 是怎么做的

首先,我們先準(zhǔn)備靜態(tài)數(shù)據(jù)做為演示用。

 
 
 
  1. var Samples = {};  
  2. Samples.People = [  
  3.         { ID: 1, FirstName: "Chris", LastName: "Pearson", BookIDs: [8008, 1002, 1003] },  
  4.         { ID: 2, FirstName: "Chris", LastName: "Johnson", BookIDs: [2001, 2002, 2003] },  
  5.         { ID: 3, FirstName: "Josh", LastName: "Sutherland", BookIDs: [3001, 3002, 3003] },  
  6.         { ID: 4, FirstName: "John", LastName: "Ronald", BookIDs: [4001, 4002, 4003] },  
  7.         { ID: 5, FirstName: "Steve", LastName: "Pinkerton", BookIDs: [1001, 1002, 1003] },  
  8.         { ID: 6, FirstName: "Katie", LastName: "Zimmerman", BookIDs: [2001, 2002, 2003] },  
  9.         { ID: 7, FirstName: "Dirk", LastName: "Anderson", BookIDs: [3001, 3002, 3003] },  
  10.         { ID: 8, FirstName: "Chris", LastName: "Stevenson", BookIDs: [4001, 4002, 4003] },  
  11.         { ID: 9, FirstName: "Bernard", LastName: "Sutherland", BookIDs: [1001, 2002, 3003] },  
  12.         { ID: 10, FirstName: "Kate", LastName: "Pinkerton", BookIDs: [4001, 3002, 2003] }  
  13.     ]; 

 核心代碼我們加到了YUI 里

 
 
 
  1. YUI.add('LINQ', function(Y) {  
  2.  // core code  
  3. },'3.1.1'); 

用Where關(guān)鍵字查詢

 
 
 
  1. var db = Y.LINQ(Samples.People)  
  2. .Where(function(item){return item.FirstName == 'Chris';}) 

會(huì)返回三條數(shù)據(jù)

 
 
 
  1. {items => [{ID => 1, FirstName => Chris, LastName => Pearson, BookIDs => [8008, 1002, 1003]}, 
  2. {ID => 2, FirstName => Chris, LastName => Johnson, BookIDs => [2001, 2002, 2003]}, 
  3. {ID => 8, FirstName => Chris, LastName => Stevenson, BookIDs => [4001, 4002, 4003]}]}  
  4. Select  
  5.  var db = Y.LINQ(Samples.People)  
  6.                .Where(function(item){return item.FirstName == 'Chris';})  
  7.                .Select(function(item){return item.FirstName;}) 

返回結(jié)果

語句中指定了返回 FirstName  所以返回 {items => [Chris, Chris, Chris]}

Intersect

第一個(gè)結(jié)果集

 
 
 
  1. var test2 = Y.LINQ(Samples.People)  
  2. .Where(function(item){return item.FirstName != 'Chris';}); 

返回是

 
 
 
  1. {items => [{ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},   
  2. {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]},  
  3.  {ID => 5, FirstName => Steve, LastName => Pinkerton, BookIDs => [1001, 1002, 1003]},   
  4. {ID => 6, FirstName => Katie, LastName => Zimmerman, BookIDs => [2001, 2002, 2003]},   
  5. {ID => 7, FirstName => Dirk, LastName => Anderson, BookIDs => [3001, 3002, 3003]},  
  6.  {ID => 9, FirstName => Bernard, LastName => Sutherland, BookIDs => [1001, 2002, 3003]},  
  7.  {ID => 10, FirstName => Kate, LastName => Pinkerton, BookIDs => [4001, 3002, 2003]}]} 

第2個(gè)結(jié)果集

 
 
 
  1. var test = Y.LINQ(Samples.People)  
  2. .Where(function(item){return item.ID < 5;})  
  3. .Intersect(test2) 

先取出所有ID小于5的數(shù)據(jù),然后再返回和test2數(shù)據(jù)集相交的部分

返回結(jié)果

 
 
 
  1. {items => [{ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},   
  2. {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]}]} 

只返回3,4兩條數(shù)據(jù)了 ,因?yàn)槊植坏扔贑hris 并且 ID < 5的 就只有2條數(shù)據(jù) : )

 
 
 
  1.  OrderBy / OrderByDescending  
  2. var test = Y.LINQ(Samples.People)  
  3. .Where(function(item){return item.ID < 5;})  
  4. .OrderByDescending(function(item){return item.ID})  

 按指定表達(dá)式對集合倒序排序,這里我們用ID排序

返回結(jié)果:

 
 
 
  1. {items => [{ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]},  
  2.  {ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},   
  3. {ID => 2, FirstName => Chris, LastName => Johnson, BookIDs => [2001, 2002, 2003]},   
  4. {ID => 1, FirstName => Chris, LastName => Pearson, BookIDs => [8008, 1002, 1003]}]} 
 
 
 
  1. var test = Y.LINQ(Samples.People)  
  2. .Where(function(item){return item.ID < 5;})  
  3. .OrderBy(function(item){return item.ID}) 

 按指定表達(dá)式對集合正序排序,這里我們用ID排序

返回結(jié)果:

 
 
 
  1. {items => [{ID => 1, FirstName => Chris, LastName => Pearson, BookIDs => [8008, 1002, 1003]},   
  2. {ID => 2, FirstName => Chris, LastName => Johnson, BookIDs => [2001, 2002, 2003]},   
  3. {ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},   
  4. {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]}]} 

Skip

跳過幾條數(shù)據(jù)

 
 
 
  1. var test = Y.LINQ(Samples.People)  
  2.                     .Where(function(item){return item.ID < 5;})  
  3.                     .OrderBy(function(item){return item.ID})  
  4.                     .Skip(0); 

返回結(jié)果:

 
 
 
  1. {items => [{ID => 2, FirstName => Chris, LastName => Johnson, BookIDs => [2001, 2002, 2003]},   
  2. {ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},  
  3.  {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]}]} 

從結(jié)果看,我們的數(shù)據(jù)集跳過了第一條數(shù)據(jù)

Delete

刪除

 
 
 
  1. var test = Y.LINQ(Samples.People)  
  2.                     .Where(function(item){return item.ID < 5;})  
  3.                     .OrderBy(function(item){return item.ID})  
  4.                     .Skip(0)  
  5.                     .Delete(function(item){return item.ID == 2;}) 

返回結(jié)果:

 
 
 
  1. {items => [{ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},   
  2. {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]}]} 

Min  / Max / Average / Sum

 
 
 
  1. var test = Y.LINQ(Samples.People)  
  2.                     .Where(function(item){return item.ID < 5;})  
  3.                     .OrderBy(function(item){return item.ID})  
  4.                     .Skip(0)  
  5.                     .Delete(function(item){return item.ID == 2;})  
  6.                     .Min(function(item){return item.ID;}) 

沿用上面結(jié)果集,Min取最小值

最后返回結(jié)果 3 ,其他關(guān)鍵字用法相同 : )

First  / Last

 
 
 
  1. var test = Y.LINQ(Samples.People)  
  2.                     .Where(function(item){return item.ID < 5;})  
  3.                     .First(); 

返回首行數(shù)據(jù)

 
 
 
  1. {ID => 1, FirstName => Chris, LastName => Pearson, BookIDs => [8008, 1002, 1003]} 
 
 
 
  1. var test = Y.LINQ(Samples.People)  
  2.                     .Where(function(item){return item.ID < 5;})  
  3.                     .Last(); 

返回末行數(shù)據(jù)

 
 
 
  1. {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]} 

Take

取前幾條數(shù)據(jù)

 
 
 
  1. var test = Y.LINQ(Samples.People)  
  2.                     .Where(function(item){return item.ID < 5;})  
  3.                     .Take(2); 

取了前2條數(shù)據(jù),返回結(jié)果

 
 
 
  1. {items => [{ID => 1, FirstName => Chris, LastName => Pearson, BookIDs => [8008, 1002, 1003]},   
  2. {ID => 2, FirstName => Chris, LastName => Johnson, BookIDs => [2001, 2002, 2003]}]} 

Count

返回結(jié)果的總個(gè)數(shù)

 
 
 
  1. var test = Y.LINQ(Samples.People)  
  2.                     .Where(function(item){return item.ID < 5;})  
  3.                     .Count(); 

返回結(jié)果 4 ,正確的  ID小于5的 數(shù)據(jù)剛好是4條 : )

SelectMany  / Any / All / ElementAt /  Distinct ...... 等等 就不一一介紹了


網(wǎng)頁標(biāo)題:詳解LINQtoJavaScript的幾種方法
標(biāo)題URL:http://www.dlmjj.cn/article/dpjdicj.html