新聞中心
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ù)做為演示用。
- var Samples = {};
- Samples.People = [
- { ID: 1, FirstName: "Chris", LastName: "Pearson", BookIDs: [8008, 1002, 1003] },
- { ID: 2, FirstName: "Chris", LastName: "Johnson", BookIDs: [2001, 2002, 2003] },
- { ID: 3, FirstName: "Josh", LastName: "Sutherland", BookIDs: [3001, 3002, 3003] },
- { ID: 4, FirstName: "John", LastName: "Ronald", BookIDs: [4001, 4002, 4003] },
- { ID: 5, FirstName: "Steve", LastName: "Pinkerton", BookIDs: [1001, 1002, 1003] },
- { ID: 6, FirstName: "Katie", LastName: "Zimmerman", BookIDs: [2001, 2002, 2003] },
- { ID: 7, FirstName: "Dirk", LastName: "Anderson", BookIDs: [3001, 3002, 3003] },
- { ID: 8, FirstName: "Chris", LastName: "Stevenson", BookIDs: [4001, 4002, 4003] },
- { ID: 9, FirstName: "Bernard", LastName: "Sutherland", BookIDs: [1001, 2002, 3003] },
- { ID: 10, FirstName: "Kate", LastName: "Pinkerton", BookIDs: [4001, 3002, 2003] }
- ];
核心代碼我們加到了YUI 里
- YUI.add('LINQ', function(Y) {
- // core code
- },'3.1.1');
用Where關(guān)鍵字查詢
- var db = Y.LINQ(Samples.People)
- .Where(function(item){return item.FirstName == 'Chris';})
會(huì)返回三條數(shù)據(jù)
- {items => [{ID => 1, FirstName => Chris, LastName => Pearson, BookIDs => [8008, 1002, 1003]},
- {ID => 2, FirstName => Chris, LastName => Johnson, BookIDs => [2001, 2002, 2003]},
- {ID => 8, FirstName => Chris, LastName => Stevenson, BookIDs => [4001, 4002, 4003]}]}
- Select
- var db = Y.LINQ(Samples.People)
- .Where(function(item){return item.FirstName == 'Chris';})
- .Select(function(item){return item.FirstName;})
返回結(jié)果
語句中指定了返回 FirstName 所以返回 {items => [Chris, Chris, Chris]}
Intersect
第一個(gè)結(jié)果集
- var test2 = Y.LINQ(Samples.People)
- .Where(function(item){return item.FirstName != 'Chris';});
返回是
- {items => [{ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},
- {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]},
- {ID => 5, FirstName => Steve, LastName => Pinkerton, BookIDs => [1001, 1002, 1003]},
- {ID => 6, FirstName => Katie, LastName => Zimmerman, BookIDs => [2001, 2002, 2003]},
- {ID => 7, FirstName => Dirk, LastName => Anderson, BookIDs => [3001, 3002, 3003]},
- {ID => 9, FirstName => Bernard, LastName => Sutherland, BookIDs => [1001, 2002, 3003]},
- {ID => 10, FirstName => Kate, LastName => Pinkerton, BookIDs => [4001, 3002, 2003]}]}
第2個(gè)結(jié)果集
- var test = Y.LINQ(Samples.People)
- .Where(function(item){return item.ID < 5;})
- .Intersect(test2)
先取出所有ID小于5的數(shù)據(jù),然后再返回和test2數(shù)據(jù)集相交的部分
返回結(jié)果
- {items => [{ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},
- {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]}]}
只返回3,4兩條數(shù)據(jù)了 ,因?yàn)槊植坏扔贑hris 并且 ID < 5的 就只有2條數(shù)據(jù) : )
- OrderBy / OrderByDescending
- var test = Y.LINQ(Samples.People)
- .Where(function(item){return item.ID < 5;})
- .OrderByDescending(function(item){return item.ID})
按指定表達(dá)式對集合倒序排序,這里我們用ID排序
返回結(jié)果:
- {items => [{ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]},
- {ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},
- {ID => 2, FirstName => Chris, LastName => Johnson, BookIDs => [2001, 2002, 2003]},
- {ID => 1, FirstName => Chris, LastName => Pearson, BookIDs => [8008, 1002, 1003]}]}
- var test = Y.LINQ(Samples.People)
- .Where(function(item){return item.ID < 5;})
- .OrderBy(function(item){return item.ID})
按指定表達(dá)式對集合正序排序,這里我們用ID排序
返回結(jié)果:
- {items => [{ID => 1, FirstName => Chris, LastName => Pearson, BookIDs => [8008, 1002, 1003]},
- {ID => 2, FirstName => Chris, LastName => Johnson, BookIDs => [2001, 2002, 2003]},
- {ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},
- {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]}]}
Skip
跳過幾條數(shù)據(jù)
- var test = Y.LINQ(Samples.People)
- .Where(function(item){return item.ID < 5;})
- .OrderBy(function(item){return item.ID})
- .Skip(0);
返回結(jié)果:
- {items => [{ID => 2, FirstName => Chris, LastName => Johnson, BookIDs => [2001, 2002, 2003]},
- {ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},
- {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]}]}
從結(jié)果看,我們的數(shù)據(jù)集跳過了第一條數(shù)據(jù)
Delete
刪除
- var test = Y.LINQ(Samples.People)
- .Where(function(item){return item.ID < 5;})
- .OrderBy(function(item){return item.ID})
- .Skip(0)
- .Delete(function(item){return item.ID == 2;})
返回結(jié)果:
- {items => [{ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},
- {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]}]}
Min / Max / Average / Sum
- var test = Y.LINQ(Samples.People)
- .Where(function(item){return item.ID < 5;})
- .OrderBy(function(item){return item.ID})
- .Skip(0)
- .Delete(function(item){return item.ID == 2;})
- .Min(function(item){return item.ID;})
沿用上面結(jié)果集,Min取最小值
最后返回結(jié)果 3 ,其他關(guān)鍵字用法相同 : )
First / Last
- var test = Y.LINQ(Samples.People)
- .Where(function(item){return item.ID < 5;})
- .First();
返回首行數(shù)據(jù)
- {ID => 1, FirstName => Chris, LastName => Pearson, BookIDs => [8008, 1002, 1003]}
- var test = Y.LINQ(Samples.People)
- .Where(function(item){return item.ID < 5;})
- .Last();
返回末行數(shù)據(jù)
- {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]}
Take
取前幾條數(shù)據(jù)
- var test = Y.LINQ(Samples.People)
- .Where(function(item){return item.ID < 5;})
- .Take(2);
取了前2條數(shù)據(jù),返回結(jié)果
- {items => [{ID => 1, FirstName => Chris, LastName => Pearson, BookIDs => [8008, 1002, 1003]},
- {ID => 2, FirstName => Chris, LastName => Johnson, BookIDs => [2001, 2002, 2003]}]}
Count
返回結(jié)果的總個(gè)數(shù)
- var test = Y.LINQ(Samples.People)
- .Where(function(item){return item.ID < 5;})
- .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


咨詢
建站咨詢
