asp.net - linq

, de fleste ansøgninger er data centriske, men de fleste af datalagre er relationsdatabaser.i de år, designere og udviklere har beregnet de applikationer, der er baseret på objekt modeller. formålene er ansvarlige for tilslutning til den adgang til data komponenter - kaldet data adgang lag (1).vi har her tre områder:,,, alle de oplysninger, der er nødvendige i en ansøgning ikke er anbragt i samme kilde.kilden kan være et forhold database, noget objekt, xml - filer, eller en webtjeneste.,,, adgang til minde objekt er enklere og billigere end adgang til data fra en database eller xml - filer.,,, data tilgængelige, ikke anvendes direkte, men skal løses, beordrede grupperet, ændret osv.,,, og hvis der er et instrument, som gør alle slags data nem adgang, der gør det muligt med data fra forskellige datakilder og udføre standard databehandlingen i få linjer kode, ville det være en stor hjælp. linq eller sprog integreret forespørgsel er et sådant værktøj.linq er fastsat i forlængelse af de. netto ramme 3,5 og forvaltes sprog, som forespørgslen som et objekt.det fastlægger en fælles syntaks og programmering model til søgning i forskellige typer af data ved hjælp af et fælles sprog. de familiemæssige operatører som udvælger projekt med gruppe, deling, operationer osv. er gennemført i linq og c&#og vb oversættere i. netto ramme 3.5, der støtter linq syntaks, gør det muligt at arbejde med en konfigureret data opbevares uden at ty til ståhej. netto. for eksempel være kunder i northwind database med linq søgning i c #, ville koden:, var dataene fra c i datacontext. kunder, hvor c. land = = "spanien" vælg c, hvor:,,, "fra" er nøgleordet der logisk loops gennem indholdet af indsamling.,,, det udtryk med hvor nøgleord er evalueret for hver genstand i than samling.,,, "vælg" erklæring udvælger de evaluerede formål at tilføje til listen tilbage.,,, "var" er nøgleordet der er for variabel erklæring.da arten af de returnerede genstand ikke er kendt, tyder det på, at oplysningerne skal udledes dynamisk.,,, linq forespørgsel kan anvendes til alle data, der er forsynet med klasse, der arver fra ienumerable < t >, her ikke er nogen data type, f.eks. liste < bog >., lad os se på et eksempel at forstå begrebet.f.eks. anvender følgende kategori: books.cs, offentlige klasse bøger (offentlige snor id (få; der;} offentlige snor afsnit (få; der;} offentlige decimal pris (få; der;} offentlige datetime dateofrelease {få; der;} offentlige statisk liste < bøger > getbooks() (liste < bøger > liste = nye liste < bøger > c); liste. der tilsættes (nye bøger (id = "001", afsnit = "programmering i c #" pris = 634.76m, dateofrelease = konvertere. todatetime ("2010-02-05")}); liste tilføje (nye bøger. {id = "002", afsnit = "lære jave i 30 dage, pris = 250.76m, dateofrelease = konvertere. todatetime (" 2011-08-15 ")}); liste. der tilsættes (nye bøger (id =" 003 ", afsnit =" programing i asp. netto - 4,0 "pris = 700.00m, dateofrelease = konvertere. todatetime (" 2011-02-05 ")}); liste. der tilsættes (nye bøger (id =" 004 ", afsnit =" vb.net let "pris = 500.99m, dateofrelease = konvertere. todatetime (" 2011-12-31 ")}); liste. der tilsættes (nye bøger (id =" 004 ", afsnit =" programmering i c "pris = 314.76m, dateofrelease = konvertere. todatetime (" 2010-02-05 ")}); liste. der tilsættes (nye bøger (id =" 004 ", afsnit =" programmering i c + + "pris = 456.76m, dateofrelease = konvertere. todatetime (" 2010-02-05 ")}); liste. der tilsættes (nye bøger (id =" 007 ", afsnit =" datebase udvikling ", pris = 1000.76m,dateofrelease = konvertere. todatetime ("2010-02-05")}); tilbage - listen), web - side ved hjælp af denne kategori har en simpel etiket, kontrol, der indeholder titler på bøger.den page_load tilfælde skaber en liste af bøger og returnerer titler ved hjælp af linq forespørgsel: offentlige delvis klasse simplequery: system.web.ui.page (beskyttede tomrum page_load (objekt afsender, eventargs e) (liste < bøger > bøger = bøger. getbooks(), var booktitles = fra b i bøger, udvælge b. afsnit; for hvert (var - afsnit i booktitles) lblbooks. tekst + = - format ("(0) < br />", afsnit)), når den side er gennemført, etiketten viser resultaterne af undersøgelsen:,, over linq udtryk:, var booktitles = fra b i bøger, udvælge b. afsnit svarer til følgende sql forespørgsel:, udvælge titel fra bøger, linq operatører, bortset fra de erhvervsdrivende, som hidtil er blevet anvendt, er der en række andre operatører, der.og alle spørgsmål.lad os se på nogle af de erhvervsdrivende og klausuler., med bestemmelse, "med klausulen i sql anvendes til slutter sig til to oplysninger, tabeller og udviser et datasæt, der indeholder kolonner, både fra borde.linq, også er i stand til det.for at kontrollere det, tilføje en anden klasse, der hedder saledetails.cs i det tidligere projekt: offentlige klasse salesdetails {offentlige int salg (få; der;} offentlige int sider (få; der;} offentlige snor id (få; der;} offentlige statisk ienumerable < salesdetails > getsalesdetails() {salesdetails [] sd = {nye salesdetails (id = "001", s = 678, salg = 110000}, nye salesdetails (id = "002", s = 789, salg = 60.000}, nye salesdetails (id = "003", s = 456, salg = 40000}, nye salesdetails (id = "004" sider = 900, salg = 80000}, nye salesdetails (id = "004", s = 456, salg = 90000}, nye salesdetails (id = "004", s = 870, salg = 50000}, nye salesdetails {jegd = 007, s = 675, salg = 40000}}; tilbage sd. spp < salesdetails > c);}}, tilføje de koder i den page_load tilfælde fører til søgning på begge de tabeller med med afsnit: beskyttet tomrum page_load (objekt afsender, eventargs e) (ienumerable < bøger > bøger = bøger. getbooks(); ienumerable < salesdetails > salg = salesdetails. getsalesdetails(), var booktitles = fra b i bøger med i salget på b.id er lig med s.id udvælge nye {navn = b. afsnit, s = s.pages}; for hvert (var - afsnit i booktitles) lblbooks. tekst + = - format ("(0) < br />", afsnit)}, den deraf følgende side er som vist:,, hvor klausulen, hvor bestemmelse giver mulighed for at tilføje nogle betinget filtre til -- hver.for eksempel, hvis du vil se de bøger, hvor antallet af sider, er mere end 500, ændre page_load begivenhed kontaktperson:, var booktitles = fra b i bøger med i salget på b.id er lig med s.id, hvor s.pages> 500 udvælge nye {navn = b. afsnit, s = s.pages}, forespørgslen kommer kun de rækker, hvor antallet af sider, er mere end 500:,, orderby og orderbydescending klausuler, disse bestemmelser tillader sortering forespørgslen resultater.at sætte spørgsmålstegn ved de titler, antallet af sider og pris for den bog, sorteret af prisen, skrive følgende kode i den page_load begivenhed -, var booktitles = fra b i bøger med i salget på b.id er lig med s.id orderby b. pris udvælge nye {navn = b. afsnit, s = s.pages, pris = b.price};, tilbage tuples:,, lad klausul, lad klausul gør det muligt at fastsætte en variabel og give det en værdi beregnet ud fra data, værdier.for eksempel, at beregne de samlede salg af de to ovennævnte salg, er man nødt til at beregne:, totalsale = prisen på bogen * salg, for at opnå dette, tilføje følgende kode stumper i page_load begivenhed -, lad klausul gør det muligt at fastsætte en variabel og give det en værdi beregnet ud fra data, værdier.for eksempel, at beregne de samlede salg af de to ovennævnte salg, er man nødt til at beregne:, var booktitles = fra b i bog med i salget på b.id er lig med s.id lad totalprofit = (b.price * s.sales) udvælge nye {navn = b. afsnit, totalsale = totalprofit}; den deraf følgende spørgsmål side er som vist:,,

LINQ Result
LINQ Result2
LINQ Result3
LINQ Result4
LINQ Result5



Previous:
Next Page: