Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 20728|Atbildi: 0

[Avots] Tāpat kā izplūdušais vaicājums Linq uz sql

[Kopēt saiti]
Publicēts 07.09.2015 23:16:28 | | |
Like darbība ir mazliet līdzīga, bet virziens ir mainījies. Ko tas nozīmē? Jūs piešķirat virkni un meklējiet lauku datos, kas satur šo virkni. Tas nozīmē, ka dotā virkne ir lauka apakškopa. Sql scrip{filter}t ir rakstīts šādi.


Selec * no tabulas, kur id, piemēram, '%AD%'
Selec * no tabulas, kur id, piemēram, '%AD'
Selec * no tabulas, kur id kā 'AD%'
Iepriekš minētais % ir aizstājējzīme, kas norāda, ka laukā ir vērtība, un nezināmā pozīcija tiek aizstāta ar %. Pirmais ir norādīt, ka vidējā daļa ir AD, un abi gali ir neskaidri. Otrais ir AD beigās, un iepriekšējais nav skaidrs. Trešais, gluži pretēji, sākas ar AD un beidzas neskaidri. Atbilstošais Linq paziņojums ir:


var q = (no c db. Klienti
kur c.CustomerID.Contains("ROUT")
atlasiet c). ToList();
Tās ģenerētais SQL ir


ATLASIET [t0]. [Klienta ID], [t0]. [Uzņēmuma nosaukums], [t0]. [KontaktpersonasVārds], [t0]. [Sazinieties ar
itle], [t0]. [Adrese], [t0]. [Pilsēta], [t0]. [Reģions], [t0]. [Pasta indekss], [t0]. [Kuns
mēģiniet], [t0]. [Tālrunis], [t0]. [Fakss]
NO [dbo]. [Klienti] AS [t0]
KUR [t0]. [Klienta ID] PATĪK @p0
-- @p0: ievades virkne (izmērs = 6; Prec = 0; Mērogs = 0) [%ROUT%]
Beidzot ar ISSA, galvas aizstājējzīme:


var q = (no c db. Klienti
kur c.CustomerID.EndsWith("ISSA")
atlasiet c). ToList();
Tās ģenerētais SQL ir


ATLASIET [t0]. [Klienta ID], [t0]. [Uzņēmuma nosaukums], [t0]. [KontaktpersonasVārds], [t0]. [Sazinieties ar
itle], [t0]. [Adrese], [t0]. [Pilsēta], [t0]. [Reģions], [t0]. [Pasta indekss], [t0]. [Kuns
mēģiniet], [t0]. [Tālrunis], [t0]. [Fakss]
NO [dbo]. [Klienti] AS [t0]
KUR [t0]. [Klienta ID] PATĪK @p0
-- @p0: ievades virkne (izmērs = 5; Prec = 0; Mērogs = 0) [%ISSA]
Sākot ar ARO, astes aizstājējzīme:


var q = (no c db. Klienti
kur c.CustomerID.StartsWith("ARO")
atlasiet c). ToList();
Tās ģenerētais SQL ir


ATLASIET [t0]. [Klienta ID], [t0]. [Uzņēmuma nosaukums], [t0]. [KontaktpersonasVārds], [t0]. [Sazinieties ar
itle], [t0]. [Adrese], [t0]. [Pilsēta], [t0]. [Reģions], [t0]. [Pasta indekss], [t0]. [Kuns
mēģiniet], [t0]. [Tālrunis], [t0]. [Fakss]
NO [dbo]. [Klienti] AS [t0]
KUR [t0]. [Klienta ID] PATĪK @p0
-- @p0: ievades virkne (izmērs = 4; Prec = 0; Mērogs = 0) [ARO%]

Linq nodrošina arī metodi ar nosaukumu SqlMethods.Like, kurai vispirms jāpievieno System.Data.Linq.SqlClient nosaukumtelpa. Iepriekš minētos trīs var uzrakstīt


var q = (no c db. Klienti
kur SqlMethods.Like(c.CustomerID, "%ROUT%")
atlasiet c). ToList();
Šeit jums pašam jāaizpilda aizstājējzīme, lai pastāstītu Linq, kā jūs atbilstat. Piemēram, kas


var q = (no c db. Klienti
kur SqlMethods.Like(c.CustomerID, "%ISSA")
atlasiet c). ToList();
Vēl viens piemērs:


var q = (no c db. Klienti
kur SqlMethods.Like(c.CustomerID, "ARO%")
atlasiet c). ToList();
Vispārsteidzošākais par SqlMethods.Like ir tas, ka jūs varat ieviest aizstājējzīmes jebkurā vietā ar savām definētajām aizstājējzīmju izteiksmēm. Piemēram, kas


var q = (no c db. Klienti
kur SqlMethods.Like(c.CustomerID, "A%O%T")
atlasiet c). ToList();
Tās ģenerētais SQL ir


ATLASIET [t0]. [Klienta ID], [t0]. [Uzņēmuma nosaukums], [t0]. [KontaktpersonasVārds], [t0]. [Sazinieties ar
itle], [t0]. [Adrese], [t0]. [Pilsēta], [t0]. [Reģions], [t0]. [Pasta indekss], [t0]. [Kuns
mēģiniet], [t0]. [Tālrunis], [t0]. [Fakss]
NO [dbo]. [Klienti] AS [t0]
KUR [t0]. [Klienta ID] PATĪK @p0
-- @p0: ievades virkne (izmērs = 5; Prec = 0; Mērogs = 0) [A%O%T]

Visstandarta lieta ir zināt, ka tas sākas ar A un beidzas ar T, zina vērtību O vidū un nezina neko citu. Vienkārši izmantojiet šo.
SQL Server definē četras aizstājējzīmes, kuras visas ir pieejamas šeit. Tie ir:
Aizstājējzīmes Descrip{filter}tion piemērs
% Jebkura virkne, kas sastāv no nulles vai vairāk rakstzīmēm. KUR nosaukums LIKE '%dators%' atrod visus grāmatu nosaukumus ar vārdu 'dators' jebkurā vietā grāmatas nosaukumā.
_ (pasvītrojums) Jebkura atsevišķa rakstzīme. KUR au_fname PIEMĒRAM, "_ean" atrod visus četru burtu vārdus, kas beidzas ar ean (Dean, Sean utt.).
[ ] Jebkura atsevišķa rakstzīme norādītajā diapazonā ([a-f]) vai komplektā ([abcdef]). KUR au_lname PIEMĒRAM "[C-P]arsen" atrod autora uzvārdus, kas beidzas ar arsen un sākas ar jebkuru atsevišķu rakstzīmi starp C un P, piemēram, Carsen, Larsen, Karsen utt.
[^] Jebkura atsevišķa rakstzīme, kas neietilpst norādītajā diapazonā ([^a-f]) vai komplektā ([^abcdef]). KUR au_lname PIEMĒRAM 'de[^l]%' visi autoru uzvārdi, kas sākas ar de un kur nākamais burts nav l.

% apzīmē virkni, kuras garums ir nulle vai jebkurš garums. _ norāda rakstzīmi. [] norāda rakstzīmi diapazona diapazonā. [^] norāda rakstzīmi, kas neatrodas noteiktā diapazonā
Piemēram, kas:


var q = (no c db. Klienti
kur SqlMethods.Like(c.CustomerID, "A_O_T")
atlasiet c). ToList();
Vienkārši izmantojiet _, lai attēlotu rakstzīmi. Ģenerētais SQL ir:


ATLASIET [t0]. [Klienta ID], [t0]. [Uzņēmuma nosaukums], [t0]. [KontaktpersonasVārds], [t0]. [Sazinieties ar
itle], [t0]. [Adrese], [t0]. [Pilsēta], [t0]. [Reģions], [t0]. [Pasta indekss], [t0]. [Kuns
mēģiniet], [t0]. [Tālrunis], [t0]. [Fakss]
NO [dbo]. [Klienti] AS [t0]
KUR [t0]. [Klienta ID] PATĪK @p0
-- @p0: ievades virkne (izmērs = 5; Prec = 0; Mērogs = 0) [A_O_T]

Par Not Like, tas ir arī ļoti vienkārši, vienkārši pievienojiet muļķības.


var q = (no c db. Klienti
kur ! SqlMethods.Like(c.CustomerID, "A_O_T")
atlasiet c). ToList();

SqlMethods.Like ir arī parametrs, ko sauc par aizbēgšanas rakstzīmi, kas tiks pārvērsts šādā paziņojumā.


ATLASĪT kolonnas NO tabulas KUR
kolonna LIKE '%\%%' ESCAPE '\'
Aizbēgšana ir tāpēc, ka laukā ir speciālās rakstzīmes, piemēram, %,_ [ ], kas tiek izmantotas kā aizstājējzīmes. Šeit ienāk Escape. Šī ir SQL Server lieta.





Iepriekšējo:Tīmekļa vietnes veiktspējas optimizācija: detalizēts kešatmiņas kontroles iestatījumu skaidrojums
Nākamo:Ruijie vienmēr ir bijis apņēmības pilns, kas notiek
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com