Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 35720|Vastaus: 2

[Lähde] Ero Expression<Func<T, bool>> ja Func<T, bool> välillä EF:ssä

[Kopioi linkki]
Julkaistu 26.9.2021 9.21.21 | | | |
Func<TObject, bool> on delegaatti

Expression<Func<TObject, bool>> ovat lausekkeita

Expressionista tulee delegaatti kokouksen jälkeen ennen kuin sitä voidaan käynnistää. Mitä esimerkiksi.

Lauseke<Func<int, bool>> ex = x=>x < 100;

Func<int, bool> func = esim. Compile();

Sitten voit kutsua func:

func(5) //-palauttaa tosi

func(200) //- palauttaa epätosi

Lausekkeita ei voi kutsua suoraan.

Tapaus:Väärä hakukoodi aiheuttaa koko taulukyselyn tietokannasta

Virhekoodi on seuraava:

Välitetään Func-tyyppinen muuttuja argumenttina Count-metodiin,EF kysyy kaikki tiedot koko taulukosta ja suodattaa sen muistista。 Generoitu SQL-lause näyttää tältä:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Suoritettu DbCommand (8ms) [parametrit=[], CommandType='Teksti', CommandTimeout='30']
      VALITSE [c]. [id], [c]. [client_type], [c]. [tila], [c]. [vuokralainen]
      LÄHTEESTÄ [taulukko] AS [c]
Oikea koodi on seuraava:

Oikea kirjoitus lisää tietokannasta missä-ehdon ja palauttaa sitten suoraan laskennan arvon。 Generoitu SQL-lause näyttää tältä:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Suoritettu DbCommand (4ms) [parametrit=[], CommandType='Teksti', CommandTimeout='30']
      VALITSE LUKUMÄÄRÄ(*)
      LÄHTEESTÄ [taulukko] AS [c]
      MISSÄ [c]. [client_type] = 1


EF Core Series 4 tarkastelee generoituja SQL-lauseita
https://www.itsvse.com/thread-9564-1-1.html
ef näyttää luodut SQL-lauseet
https://www.itsvse.com/thread-3813-1-1.html

Func-delegaattikutsujen käyttö onSystem.Linq.EnumerableLaske alla

Lauseke, jota kutsutaan Expression<Func<T, bool>> onSystem.Linq.QueryableLaske alla



(Loppu)





Edellinen:[Harjoittele] Tee vihreä versio ilman asennusta Java JDK Windowsista
Seuraava:Java lähettää SMS-vahvistuskoodeja Alibaba Cloud SMS SDK:n kautta
Julkaistu 26.9.2021 16.19.52 |
oppinut
Julkaistu 26.9.2021 17.31.25 |
Kyllä, olen täällä oppimassa uudelleen...
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com