You are on page 1of 8

I.Ti sao li LINQ ra i?

lu lm ri, hn 2 th ni!n, n"#nh $%n" n"hi& h'n m(m m)i $h*n" +i,n m-t $u-$
.i tha/ man" t0nh 12)$ n"o3$ 4( m3t n"%n n"5. 6 $h0nh l# LINQ, m-t $u-$ $7$h tn
+h7 t7o 1o. 28$ "9i l# :;a$+ to th< =utur<:, LINQ man" hi h2)n" $>a m-t n"%n n"5
l tr?nh @ABNC h2)n" Di t28n". Tht l, EaraFi"m GG i ,n iHm .n Inh $ao
nhJt 4# t2Kn" rLn" n6 sM $h,t tr!n Nnh 4inh Ouan" 6. Nh2n" +h%n", LINQ th.i 4#o 6
m-t lun" "i6 m)i. Tht ra, 1Pn $hJt $>a n6 $h0nh l# thDn" nhJt sQ +h7$ 1i&t "i5a hai m%
h?nh R Di t28n" 4# S5 li&u. TQ +h7$ 1i&t n#/ $h0nh l# r#o $Pn l)n nhJt m# tron" 4Un"
mJ/ $hV$ nWm Oua n"#nh $%n" n"hi& h'n m(m hPi :sDn" $hun" 4)i lX:. Y-t $7$h
n%m na, "i /, $hZn" ta $hN $'n 1i,t m-t n"%n n"5 m# th%i, +h%n" hPi 1i,t th!m TQL,
[Eath...
i \a hn sQ thDn" nhJt 4( $7$h th*$ tru/ 4Jn F5 li&u, $7$ $%n" n"h& h] tr8 Ln" sau
LINQ nh2 G^Y l#m $ho 4i&$ l tr?nh trK n!n n "iPn hn, "9n "#n" hn.
N6i m-t $7$h F_ h?nh Fun", sQ \un" -t "i5a 2 araFi"m GG 4# Sata tr%n" "iDn" nh2 sQ
\un" -t "i5a $7$ h& t2 t2Kn" 4# n6 Fai F`n" nh2 $u-$ \un" -t $>a n"2i Eal<stin< 4#
Isra<l. N,u sQ :Trun" "ian hUa "iPi: H "iZ 2 1!n :n"i li 4)i nhau: $>a Ya, bhu cu,
N"a ha/ $P Li!n Ai& QuD$ (u thJt 1i th? $hZn" ta $Xn" $6 h#n" lot $7$ $%n" $V trun"
"ian G^Y $>a hn" th* 1a nh2 Ai1<rnat<, G^Y, ;id;lo\,...$h2a > to ra sQ /!n tm.
b7$ G^Y tool n#/ rDt $V$ $Xn" $hN l# tm thi e 4fn +h%n" thH n#o "iPi Ou/,t 28$ tn
"D$ r_ $>a 4Jn (. Thm $h0 FQ 7n G1g<$tTa$< $>a " +h.n" l Yi$roso=t 4fn $h,t
n"a/ +hi $h2a +I ra i. N"2i ta $D "n" "iPi Ou/,t 4Jn ( n#/ 1Ln" $7$h +h7$, s7n"
to hn. h# $6 4i nh2 LINQ $h0nh l# m-t "iPi h7 ha/. Y-t h2n" h7 lun s7n" to
28$ sj FVn"R Tri +h%n" $hIu Jt th? Jt $hIu tri. h)i LINQ, $hZn" ta sM thJ/ sQ
:nh28n" 1-: rk r#n" $>a GG. N6 $D "n" ti, $n Sata, n6 n" thi tQ nn" $ao nWn"
lQ$ $>a $h0nh n6.
e;!n la4a $6 Ai1<rnat< th? LINQ $Xn" t2n" tQ nh2 4/, n6 2a ra +hP nWn" l
tr?nh m)i tron" .NmT +iHu tru/ 4Jn RTOl S;, G1g<$ts 4# [ml
eCiPi h7 l tr?nh h8 nhJt, <m ,n +hP nWn" tru/ 4Jn F5 li&u th<o $Z h7
TQL trQ$ ti, tron" bn ha/ h;.NmT, 7 FVn" $ho tJt $P $7$ Fn" F5 li&u to Di t28n"
,n bTSL Ouan h& 4# [YL.
e[j lp th%n" tin ha/ F5 li&u l# nhi&m 4V Ouan tr9n" nhJt $>a 1Jt +q h'n m(m
n#o 4# m-t tron" nh5n" trK n"i $h0nh m# $7$ nh# h7t triHn hi&n na/ hPi Di m3t l#
+h7$ 1i&t "i5a n"%n n"5 l tr?nh h2)n" Di t28n" 4# n"%n n"5 tru/ 4Jn F5 li&u, 4Jn (
$#n" h*$ t hn 4)i sQ \uJt hi&n $>a [YL r<[t<nsi1l< Yar+u Lan"ua"< e n"%n n"5
7nh FJu mK r-n"s.
eAi&n ti, $7$h h. 1i,n nhJt H *n" FVn" lJ/ F5 li&u to $7$ h& $ sK F5 li&u
rbTSLs l# sj FVn" TQL rTtru$tur< Qu<r/ Lan"ua"< e n"%n n"5 tru/ 4Jn $Ju trZ$s. TQL
$6 $Z h7 rJt +h7$ 4)i nh5n" n"%n n"5 l tr?nh h. FVn" nh2 bn 4# h;.NmT, Fo 4/
l tr?nh 4i!n hPi nh9$ $%n" :h#n "n: hai thQ$ thH +h7$ 1i&t n#/ 4)i nhau tron" m]i FQ
7n h'n m(m.
eY-t 4Jn ( +h7$ 4)i TQL l# n6 $hN Ftn" H tru/ 4Jn F5 li&u tron" $7$ bTSL
Fn" Ouan h&. N,u muDn tru/ $ F5 li&u [YL ha/ Fn" +h7$ rnh2 tran" ATYL,
<mail...s, nh# h7t triHn li hPi sj FVn" $Z h7 tru/ 4Jn +h7$ r[Eathu[Qu<r/s.
H "iPm "7nh n3n" thao t7$ tr!n nhi(u n"%n n"5 +h7$ nhau 4# $Pi thi&n nWn" suJt l
tr?nh, Yi$roso=t h7t triHn "iPi h7 t0$h h8 F5 li&u $ho .NmT vram<wor+ $6 t!n "9i
l# LINQ rLan"ua"< Int<"rat<F Qu<r/s, / l# th2 4i&n mK r-n" $ho $7$ n"%n n"5 l
tr?nh bn 4# hisual ;asi$.NmT r$6 thH mK r-n" $ho $7$ n"%n n"5 +h7$s $un" $J +hP
nWn" tru/ 4Jn trQ$ ti, F5 li&u Di t28n", bTSL 4# [YL.
eTru/ 4Jn F5 li&u Di t28n" tron" 1- nh)
S5 li&u $'n hPi . 4#o 1- nh) H \j lp, nh2n" m-t +hi t7$h +hxi ni "D$ $>a n6 th? +hP
nWn" tru/ 4Jn rJt +ym. ;n $6 thH F_ F#n" tru/ 4Jn th%n" tin +h7$h h#n" m6$ nDi 4)i
th%n" tin n h#n" $>a h9 to bTSL TQL T<r4<r nh2n" +h%n" F_ "? thQ$ hi&n t2n" tQ
4)i th%n" tin tron" 1- nh). Tron" m%i tr2n" .NmT, th%n" tin rtron" 1- nh)s th2n"
28$ thH hi&n K Fn" $7$ Di t28n" 4# tr2)$ LINQ, +h%n" $6 $7$h n#o H m6$ nDi $7$
Di t28n" ha/ thQ$ hi&n 1Jt +q thao t7$ tru/ 4Jn n#o. LINQ $h0nh l# "iPi h7 $ho 4Jn (
n#/.
eh)i Yi$roso=t .NmT lat=orm, n"%n n"5 h] tr8 $h0nh 6 $h0nh l# bn 4# h;.NmT.
Nh5n" n"2i l tr?nh 4i!n h9 th2n" "3 r$ rDi, 4# $Pm thJ/ +h6 $hIu 4)i 4i&$ tru/ $
F5 li&u K nh5n" n"un +h7$ nhau. 3$ 1i&t l# 2 loi F5 li&u [YL 4# bTSL.h)i bTSL l#
%n" Po nhJt 4( F5 li&u l2u tr5.
b7$ 4Jn ( 4( tru/ suJt F5 li&u nh2 sauR
z e bhZn" ta +h%n" l tr?nh t2n" t7$ 4)i bTSL ti $J - nati4< lan"ua"<. h? th, l]i
th2n" +h6 h7t hi&n rk. @h6 +hWn tron" 4i&$ OuPn lp l]i \P/ ra.
2 e @iHu F5 li&u +h7$ nhau tron" m]i n"un F5 li&u K [YL 4# bTSL. 3$ 1i&t Fat< 4#
tim<.
bh0nh $7$ nh# h7t triHn K Yi$roso=t 2a ra z n(n tPn" m)i tron" 4i&$ tru/ 4Jn F5 li&u K
1Jt +H $7$ n"un +h7$ nhaurG1g<$t, [YL, bTSLs. 6 l# LINQ, / l# $%n" n"h& m# h.
tr8 $ $h, tru/ 4Jn F5 li&u K tJt $P $7$ +iHu. Nh5n" +iHu na/ 1ao "m mn"rList, h<$tors,
[YL, bTSL 4# hn th, n5a.
i(u Ouan tr9n" nhJt, LINQ l# tJt $P 4( tru/ 4Jn, +,t OuP sau +hi tru/ 4Jn $6 thH l# t
h8 $7$ Di t28n" $tn" loi, $6 thH l# z Di t28n" n, $6 thH l# t h8 $on $>a $7$ =i<lF
to z Di t28n". @,t OuP trP 4( $>a LINQ n"2i ta "9i l# s<Ou<n$<.A'u h,t s<Ou<n$< l#
Imnum<ra1l<{T| 4)i T l# @SL $>a nh5n" Di t28n" tron" s<Ou<n$<.
LINQ n6 sM $un" $J $7$h Fu/ nhJt H tru/ $ F5 li&u to 1Jt +H n"un F5 li&u n#o 4)i
$Z h7 "iDn" nhau.
II.LINQ l# "? ?
Th<o Inh n"h}a tr!n th2 4i!n YTSN $>a Yi$roso=t LINQ l# m-t t h8 $7$ h'n mK
r-n" $>a .N<t vram< ~or+. N6 1ao "m n"%n n"5 t0$h h8 tru/ 4Jn, thi, l 4# $hu/Hn
.i hot -n". N6 mK r%n" bn 4# hisual ;asi$ 4)i $Z h7 n"%n n"5 1Pn Ia $ho $7$
tru/ 4Jn 4# $un" $J $7$ th2 4i&n l) H tn FVn" nh5n" +hP nWn" thun l8i $>a n6.
III.h/ LINQ 1ao "m nh5n" "? ?
Th<o wi+i<Fia R

Kin trc ca LINQ trong. Net Framework 3.5
Ton t operator chun!
1.Select / SelectMany 2.Where
3.Sum / Min / Max / Average / Aggregate 4.Join / GroupJoin
5.a!e / a!eWhile ".S!ip / S!ipWhile
#.$%ype &.'oncat
(.$r)er*y / hen*y 1+.,ever-e
11.Group*y 12..i-tinct
13./nion / 0nter-ect / 1xcept 14.12ualAll
15.3ir-t / 3ir-t$r.e%ault / 4a-t / 4a-t$r.e%ault 1".Single
1#.1lementAt 1&.Any / All / 'ontain-
1(.'ount
1.Select / SelectMany '5c c6u 'h7n th8c hi9n m:t )8 v;o <: -=u t>p ?@ ch7n tAt cB c5c th;nh viCn )D li9u
tEo nCn c5c ?Fi t=Gng hoHc m:t t>p hGp con cIa nJ. '5c to5n tK SelectMany th8c hi9n m:t lLn ?@
chiMu nhiNuOP QlRngQ nghSa l;TU nMu c5c ?Fi t=Gng trong <: -=u t>p cJ m:t <: -=u t>p nh= m:t th;nh
viCn )D li9uU SelectMany cJ th@ ?=Gc )Vng ?@ ch7n to;n <: phW thu. Xg=Yi -K )Wng nguRn cung
cAp m:t chZc n[ngU nh= l; m:t ?Ei <i@uU c5c )8 5n m; c5c th;nh viCn )D li9u. 48a ch7n tEo ra m:t
?Fi t=Gng cIa m:t !i@u !h5c nhauU trong ?J cJ cB m:t -F hoHc nhiNu th;nh viCn nh= l; )D li9u nh=
l; l\p gFc. 4\p phBi ?] ?=Gc x5c ^ ?6u
2.Where '5c nh; ?iNu h;nh _ ?6u cho ph`p ?anh nghSa cIa m:t t>p c5c 2uy tbc l;m va ?=Gc ?5nh gi5 cho
tcng ?Fi t=Gng trong <: -=u t>pU trong !hi c5c ?Fi t=Gng ?J !hdng phV hGp v\i 2uy lu>t -e ?=Gc l7c
?i.
3.Sum / Min / Max / Average / Aggregate '5c to5n tK phBi mAt m:t pre)icate ?@ lAy m:t gi5 tra nhAt ?anh
-F tc mfi th;nh phLn trong <: -=u t>p v; -K )Wng nJ ?@ tgm thng hGpU tFi thi@uU tFi ?aU hoHc thng
hGp c5c gi5 tra trung <gnh cIa tAt cB c5c yMu tF trong <: -=u t>p t=ing Zng.
4.Join / GroupJoin '5c to5n tK tham gia th8c hi9n m:t <Cn tham gia v;o hai <: -=u t>pU )8a trCn !Mt hGp
c5c phjm cho tcng ?Fi t=Gng trong <: -=u t>p. khBi mAt hai chZc n[ng l; ?Ei )i9nU m:t cho mfi <:
-=u t>pU m; nJ th8c thi trCn mfi ?Fi t=Gng trong <: -=u t>p ?@ lAy chga !hJa tc ?Fi t=Gng. XJ clng
mAt m:t ?Ei )i9n thdng 2ua ?J ng=Yi )Vng x5c ?anh c5c yMu tF )D li9u ?JU tc hai yMu tF phV hGpU
nCn ?=Gc -K )Wng ?@ tEo ra c5c ?Fi t=Gng !Mt 2uB. '5c nh; ?iNu h;nh GroupJoin th8c hi9n m:t
nhJm tham gia. GiFng nh= c5c nh; ?iNu h;nh ch7nU !Mt 2uB cIa m:t gia ?ang in-tantiation- cIa m:t
tLng l\p !h5c nhauU v\i tAt cB c5c th;nh viCn )D li9u cIa cB hai loEi cIa c5c ?Fi t=Gng nguRn gFc
hoHc m:t t>p hGp con cIa h7.
5.a!e / a!eWhile m]y ch7n c5c nh; !hai th5c c5c ?Fi t=Gng n ?Lu tiCn tc m:t <: -=u t>pU trong !hi c5c
nh; ?iNu h;nh a!eWhileU m; phBi mAt m:t pre)icateU ch7n nhDng ?Fi t=Gng phV hGp v\i pre)icate.
".S!ip / S!ipWhile *n 2ua v; S!ipWhile c5c nh; !hai th5c ?=Gc <h -ung cIa a!e v; a!eWhile O h7 <n 2ua
c5c ?Fi t=Gng n ?Lu tiCn tc <: -=u t>p m:tU hoHc nhDng ?Fi t=Gng phV hGp v\i m:t pre)icate P?Fi
v\i tr=Yng hGp cIa S!ipWhileT.
#.$%ype '5c to5n tK $%ype ?=Gc -K )Wng ?@ ch7n c5c phLn tK cIa m:t loEi nhAt ?anh.
&.'oncat '5c to5n tK concat concatenate- hai <: -=u t>p.
(.$r)er*y / hen*y '5c to5n tK $r)er*y ?=Gc -K )Wng ?@ x5c ?anh ph6n loEi chjnh ?Ht h;ng cIa c5c yMu
tF trong <: -=u t>p m:t theo m:t -F tr7ng ?i@m. MHc ?anh l; -bp ?Ht thZ t8 t[ng )LnU ?@ ?Bo ng=Gc
tr>t t8U c5c nh; ?iNu h;nh $r)er*y.e-cen)ing l; ?@ ?=Gc -K )Wng. hen*y v; hen*y.e-cen)ing
x5c ?anh tiMp theo ?Ht h;ng cIa c5c yMu tF. 'hZc n[ng ?@ trjch xuAt c5c gi5 tra 2uan tr7ng tc ?Fi
t=Gng ?=Gc x5c ?anh <_i ng=Yi -K )Wng nh= l; m:t ?Ei )i9n.
1+.,ever-e Xg=Gc lEi to5n tK m:t <: -=u t>p ?Bo ng=Gc.
11.Group*y '5c to5n tK Group*y mAt m:t ?Ei <i@u rong chAt chiMt xuAt m:t gi5 tra !hJa v; trB vN m:t <:
-=u t>p cIa 0GroupingpqeyU ralue-s ?Fi t=Gng 0GroupingpqeyU ralue-s cho mfi gi5 tra 2uan tr7ng
!h5c <i9t. '5c ?Fi t=Gng 0Grouping -au ?J cJ th@ ?=Gc -K )Wng ?@ li9t !C tAt cB c5c ?Fi t=Gng cho
m:t gi5 tra ?Hc <i9t 2uan tr7ng.
12..i-tinct '5c to5n tK riCng <i9t loEi <n tr=Yng hGp lHp cIa m:t gi5 tra 2uan tr7ng tc m:t <: -=u t>p. 'hZc
n[ng ?@ lAy gi5 tra 2uan tr7ng l; ?@ ?=Gc cung cAp nh= m:t ?Ei <i@u.
13./nion / 0nter-ect / 1xcept '5c to5n tK ?=Gc -K )Wng ?@ th8c hi9n m:t cdng ?o;nU giao l: v; c5c hoEt
?:ng !h5c nhau trCn hai trgnh t8U t=ing Zng.
14.12ualAll '5c to5n tK 12ualAll !i@m tra xem tAt cB c5c yMu tF trong hai <: -=u t>p ?Nu ?=Gc <gnh ?tng.
15.3ir-t / 3ir-t$r.e%ault / 4a-t / 4a-t$r.e%ault '5c to5n tK phBi mAt m:t pre)icate. '5c to5n tK ?Lu tiCn tr_
vN c5c yMu tF ?Lu tiCn m; -Bn l=Gng l;m va ?ung hoHc n`m m:t ngoEi l9 nMu !hdng cJ gg phV hGp.
'5c to5n tK 3ir-t$r.e%ault clng giFng nh= c5c nh; !hai th5c ?Lu tiCn ngoEi trc vi9c nJ trB vN gi5 tra
mHc ?anh cho !i@u phLn tK Pth=Yng l; m:t tham chiMu nullT trong tr=Yng hGp !hdng cJ gg phV hGp
v\i pre)icate. '5c to5n tK cuFi truy nguyCn tF cuFi cVng ?@ phV hGp v\i l;m vaU hoHc n`m m:t ngoEi
l9 trong tr=Yng hGp !hdng cJ gg phV hGp. 4a-t$r.e%ault '5c trB vN gi5 tra phLn tK mHc ?anh nMu
!hdng cJ gg phV hGp.
1".Single '5c to5n tK ?in mAt m:t pre)icate v; trB vN c5c yMu tF ?J phV hGp v\i pre)icate. M:t tr=Yng
hGp ngoEi l9 ?=Gc n`m nMu !hdng cJ hoHc nhiNu hin m:t yMu tF phV hGp v\i pre)icate.
1#.1lementAt '5c nh; ?iNu h;nh 1lementAt lAy phLn tK tEi m:t chv -F ?=Gc ?=a ra trong <: -=u t>p.
1&.Any / All / 'ontain- '5c to5n tK *At !w !i@m tra nMu cJ <At !w yMu tF trong <: -=u t>p phV hGp v\i
pre)icate. XJ !hdng ch7n c5c phLn tKU nh=ng trB vN ?ung cho m:t tr>n ?Au. At cB c5c to5n tK !i@m
tra xem tAt cB c5c yMu tF phV hGp v\i pre)icate. 'hZa c5c to5n tK !i@m tra nMu <: -=u t>p cJ m:t
gi5 tra nhAt ?anh.
1(.'ount '5c to5n tK 'ount ?Mm -F l=Gng c5c yMu tF trong <: -=u t>p ?=Gc.
he Stan)ar) xuery operator Ak0 clng chv ry m:t -F nh; !hai th5c chuy@n ?hi m:t <: -=u t>p v;o loEi hgnh
!h5cz {1|
A-1numera<lez chuy@n ?hi c5c <: -=u t>p ?@ loEi 01numera<leps
oxuerya<lez chuy@n ?hi c5c <: -=u t>p ?@ loEi 0xuerya<leps
oArrayz chuy@n ?hi c5c <: -=u t>p v;o m:t mBng.
o4i-tz chuy@n ?hi c5c <: -=u t>p ?@ loEi 04i-tps
o.ictionaryz chuy@n ?hi c5c <: -=u t>p ?@ 0.ictionarypqU s loEi 0.ictionarypqU s l>p chv mWc <ong phjm
q.
o4oo!upz chuy@n ?hi c5c <: -=u t>p ?@ 04oo!uppqU s loEi 04oo!uppqU s l>p chv mWc <ong phjm q.
'a-tz chuy@n ?hi m:t th chZc phi chung 01numera<le <: -=u t>p v;o m:t trong c5c 01numera<leps <_i
mfi yMu tF ?@ loEi. X`m m:t ngoEi l9 cho c5c !i@u !hdng t=ing thjch.
$%ypez chuy@n ?hi m:t th chZc phi chung 01numera<le <: -=u t>p v;o m:t trong c5c 01numera<leps 'hv
cJ yMu tF cIa loEi ?=Gc <ao gRm.
'5c to5n tK tgm !iMm -e ?=Gc x5c ?anh trong giao )i9n 01numera<leps nh= ph=ing ph5p !huyMn !hjch
chung chungU v; tri@n !hai th8c hi9n cW th@ ?=Gc cung cAp trong l\p Se2uence qMt 2uB l;U l\p h7c
n;o m; th8c hi9n c5c giao )i9n 01numera<leps cJ 2uyNn truy c>p ?Mn nhDng ph=ing ph5p n;y v;
l; 2uerya<le. 40Xx clng ?anh nghSa m:t t>p c5c chung 3unc ?Ei <i@uU trong ?J x5c ?anh c5c loEi ?Ei
<i@u xK l} <ong c5c ph=ing ph5p truy vAn 40Xx. *At !w chZc n[ng <7c trong m:t ?o;n 3unc cJ th@
?=Gc -K )Wng <_i 40Xx. Mfi ph=ing thZc trB vN m:t ?Fi t=Gng th8c hi9n c5c giao )i9n
01numera<leps )o ?JU ?Lu ra cIa m:t ng=Yi cJ th@ ?=Gc -K )Wng nh= c5c ?Lu v;o !h5cU !Mt 2uB
compo-a<ility truy vAn. 'hZc n[ngU tuy nhiCnU cJ la~ily ?5nh gi5U nghSa l;U c5c <: -=u t>p ?=Gc li9t
!C chv !hi !Mt 2uB ?=Gc lAy. Mm ?=Gc tEm )cng ngay -au !hi tr>n ?Au ?=Gc tgm thAyU v; c5c ?Ei
<i@u ?5nh gi5 trCn nJ. qhi m:t ?Fi t=Gng tiMp theo trong <: -=u t>p !Mt 2uB ?=Gc lAy raU vi9c li9t !C
c5c nguRn thu ?=Gc tiMp tWc v=Gt ra ngo;i yMu tF ?] ?=Gc ?5nh gi5. uy nhiCnU hoEt ?:ng nhJmU
nh= Group*y v; $r)er*yU clng nh= SumU MinU MaxU trung <gnh v; thng hGpU yCu cLu )D li9u tc tAt
cB c5c yMu tF trong <: -=u t>pU v; m:t l8c l=Gng ?5nh gi5 mong muFn. 40Xx !hdng m:t tjnh n[ng
tdi =u hoa truy vAn v; c5c nh; ?iNu h;nh tgm !iMm -e ?=Gc ?5nh gi5 theo thZ t8 chung ?=Gc vi9n
)n. '5c ph=ing ph5p 40Xx ?=Gc compila<le trong X1 3rameor! 2.+.U
khLn m_ r:ng Xgdn ngD
rong !hi 40Xx chI yMu th8c hi9n nh= m:t th= vi9n cho. X1 3rameor! 3.5U nJ clng ?anh nghSa m:t t>p
c5c phLn m_ r:ng ngdn ngD cJ th@ ?=Gc th8c hi9n <_i tVy ch7n ngdn ngD ?@ th8c hi9n truy vAn m:t
ngdn ngD l\p ?Lu tiCn x6y )8ng v; cung cAp ?=Yng cu ph5p ?@ viMt c5c truy vAn. XhDng phLn m_
r:ng ngdn ngD ?] <=\c ?Lu ?=Gc th8c hi9n trong ' 3.+U r* (U+ v; $xygeneU v\i c5c ngdn ngD
!h5c nh= 3 v; Xemerle cJ hf trG cdng <F -i <:. '5c phLn m_ r:ng ngdn ngD <ao gRmz {2|
ruy vAn cu ph5pz M:t l; ngdn ngD ri9t ?@ ch7n m:t cu ph5p truy vAn rong nJ -e nh>n ra nguyCn <Bn.
XhDng tc !hJa ngdn ngD phBi ?=Gc )ach <_i trgnh <iCn )ach cho c5c cu:c g7i ph=ing ph5p thjch
hGp 40Xx. '5c ngdn ngD cJ th@ th8c hi9n -bp xMp lEi nh; ?iNu h;nh v; tFi =u hJa !h5c _ mZc tc
!hJa.
XgLm ?5nh m5y <iMnz n6ng cao n;y cho ph`p c5c <iMn ?=Gc !hai <5o m; !hdng cJ chv ?anh c5c loEi cIa
h7. '5c ngdn ngD ' 3.+ v; $xygene tuyCn <F chung v\i nhDng tc !hJa var rong r*(.+U vi9c -K
)Wng c5c tc !hJa .im m; !hdng loEi tY !hai ho;n th;nh vi9c !C !hai nh= v>y. '5c ?Fi t=Gng n;y
vn cn mEnh me cho c5c ?Fi t=Gng -K )Wng c5c trgnh <iCn )ach -uy lu>n !i@u -uy ra loEi cIa c5c
<iMn. iNu n;y cho ph`p !Mt 2uB cIa c5c truy vAn ?=Gc chv ?anh v; !Mt 2uB cIa h7 ?=Gc x5c ?anh
m; !hdng !hai <5o !i@u cIa c5c <iMn trung gian.
'h=a x5c ?anh ng=Yi loEiz loEi 'h=a x5c ?anh ng=Yi cho ph`p c5c l\p h7cU cJ chZa )D li9u !hai <5o th;nh
viCn )uy nhAtU ?@ ?=Gc -uy ra <_i trgnh <iCn )ach. iNu n;y l; hDu jch cho vi9c ch7n v; tham gia v>n
h;nhU c5c loEi 2uB cJ th@ !h5c <i9t v\i c5c loEi cIa c5c ?Fi t=Gng <an ?Lu. rgnh <iCn )ach n;y -K
)Wng !i@u -uy lu>n ?@ x5c ?anh c5c lSnh v8c chZa trong c5c l\p h7c v; tEo ra acce--or- v; mutator-
cho c5c lSnh v8c n;y.
Fi t=Gng 0nitiali~erz initiali~er- $<ect cho ph`p m:t ?Fi t=Gng ?=Gc tEo ra v; !h_i tEo trong m:t phEm vi
)uy nhAtU ?iNu n;y cho ph`p tEo ra c5c ?Ei <i@u rong c5c lSnh v8c chiMt xuAt tc m:t ?Fi t=GngU tEo
m:t ?Fi t=Gng m\i v; g5n )D li9u ?@ trjch xuAt c5c lSnh v8c cIa ?Fi t=Gng m\i trong m:t tuyCn <F
?in U nh= l; cLn thiMt ?@ ch7n v; tham gia v>n h;nh.
*i@u thZc 4am<)az 4am<)a <i@u thZc ?=Gc -K )Wng ?@ tEo ra c5c ?Ei <i@u n:i tuyMn v\i c5c m] !h5c. iNu
n;y cho ph`p c5c pre)icate- v; chZc n[ng !hai th5c ?=Gc ghi n:i tuyMn v\i c5c truy vAn.
rj )WU trong truy vAn ?@ ch7n tAt cB c5c ?Fi t=Gng trong <: -=u t>p m:t v\i Somekroperty jt hin 1+U
int -omeralue 5
var re-ult- %rom c in -ome'ollection
let x -omeralue 2
here c.Somekroperty p x
-elect ne c.SomekropertyU c.$therkroperty
%oreach Pvar re-ult in re-ult-T

'on-ole.Write4inePre-ultT

c5c loEi <iMn !Mt 2uBU c v; tAt cB c5c !Mt 2uB ?=Gc -uy ra <_i trgnh <iCn )ach O giB -K Some'ollection l;
01numera<lepSome'la--s c -e ?=Gc Some'la-- !Mt 2uB -e ?=Gc 01numera<lepSome$ther'la--s
v; !Mt 2uB -e ?=Gc Some$ther'la-- nii Some$ther'la-- -e l; m:t trgnh <iCn )ach tEo ra l\p v\i
Somekroperty chv v; t;i -Bn $therkroperty v; gi5 tra cIa h7 thiMt l>p tc c5c ?iNu !hoBn t=ing Zng
cIa c5c ?Fi t=Gng nguRn. '5c o5n tK -au ?J ?=Gc )ach ra c5c cu:c g7i ph=ing thZc nh=z
01numera<lepSome$ther'la--s re-ult-
Some'ollection.Where
P
c s c.Somekroperty p PSomeralue 2T
T
.Select
P
c s ne c.SomekropertyU c.$therkroperty
T
%oreach PSome$ther'la-- re-ult in re-ult-T

'on-ole.Write4inePre-ult.oStringPTT

LINQ $un" $JR
e LINQ to G1g<$ts
e LINQ to [YL
e LINQ to TQL
e LINQ to SataT<ts
e Gth<r ro4iF<rs
eLINQ to G1g<$tsR b7$ nh# $un" $J 28$ sj FVn" H tru/ 4Jn tron" 1- s2u t
1- nh), sj FVn" $%n" $V tru/ 4Jn thQ$ hi&n ti Ia h2n" $>a LINQ. b7$ m 28$ to ra
1Ki nh# $un" $J n#/ ( $ ,n 4i&$ thQ$ hi&n $7$ nh# +hai th7$ tru/ 4Jn ti!u $hun nh2
28$ Inh n"h}a tron" $7$ l) h9$ T<Ou<n$< 4# $ho hy $7$ 1- s2u t mnum<ra1l<{T|
28$ tru/ 4Jn ti Ia h2n". Ai&n h#nh thQ$ hi&n $7$ LINQ to Di t28n" sj FVn" 40 FV
nh2 G rns tu/,n t0nh 4# t?m tra $*u n "iPn, 4# +h%n" hPi l# tDi 2u h6a $ho $7$ tru/
4Jn h*$ t
e LINQ to [YLR b7$ LINQ to [YL $un" $J FI$h 4V $hu/Hn .i m-t t#i li&u
[YL 4)i m-t 1- s2u t $>a [ml<m<nt Di t28n", m# sau 6 tru/ 4Jn Di 4)i 4i&$ sj
FVn" -n" $ thQ$ hi&n ti Ia h2n" 28$ $un" $J nh2 m-t h'n $>a 4i&$ thQ$ hi&n
$7$ nh# i(u h#nh tru/ 4Jn ti!u $hun .
e LINQ to TQLR b7$ LINQ to TQL $ho hy $7$ nh# $un" $J LINQ sM 28$ sj
FVn" H tru/ 4Jn TQL T<r4<r $Xn" nh2 $ sK F5 li&u TQL T<r4<r boma$t $ sK F5 li&u.
@H to +hi F5 li&u TQL T<r4<r nLm tr!n m7/ $h> to \a, 4# 1Ki 4? n6 1ao "m m-t $%n"
$V tru/ 4Jn, LINQ to TQL +h%n" sj FVn" -n" $ $>a LINQ tru/ 4Jn. Tha/ 4#o 6, n6
$hu/Hn .i m-t tru/ 4Jn LINQ $ho m-t tru/ 4Jn TQL l# sau 6 "ji ,n TQL T<r4<r $ho
$h, 1i,n Tu/ nhi!n, +H to TQL T<r4<r l2u tr5 $7$ F5 li&u nh2 F5 li&u Ouan h& 4# l#m 4i&$
4)i LINQ F5 li&u 6n" "6i tron" $7$ Di t28n"., Aai i Fi&n hPi 28$ 7nh \ 4)i nhau.
h? lp Fo n#/, LINQ to TQL $Xn" Inh n"h}a +hu%n +h. l 1Pn . L 1Pn n#/ 28$
thQ$ hi&n 1Ln" $7$h \7$ Inh $7$ l) h9$ t2n" *n" 4)i $7$ 1Pn" tron" $ sK F5 li&u, 4#
$6 $h*a tJt $P ho3$ m-t t h8 $on $>a $7$ $-t tron" 1Pn" F5 li&u nh2 l# $7$ th#nh 4i!n
Th2 n#/, $tn" 4)i m% h?nh Ouan h& +h7$ $hn" hn nh2 $7$ thu-$ t0nh +h6a $h0nh 28$
Ou/ Inh sj FVn" LINQ to TQLethu-$ t0nh 28$ \7$ Inh. h0 FV
Ta1l<rNam<:bustom<rs:s
u1li$ $lass bustom<r

bolumnrIsErimar/@</ tru<s
u1li$ int bustIS

bolumn
u1li$ strin" bustNam<

Ao#n" Trun" @i!nTA;rs

You might also like