Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 35720|Antwoord: 2

[Bron] Het verschil tussen Expression<Func<T, bool>> en Func<T, bool> in EF

[Link kopiëren]
Geplaatst op 26-09-2021 09:21:21 | | | |
Func<TObject, bool> is een afgevaardigde

Expression<Func<TObject, bool>> zijn expressies

Expression wordt na compilatie een delegate voordat deze kan worden uitgevoerd. Wat dan?

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

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

Dan kun je func aanroepen:

func(5) //-geeft waar terug

func(200) //- geeft false terug

Uitdrukkingen kunnen niet direct worden aangeroepen.

Geval:Onjuiste querycode veroorzaakt een volledige tabelquery in de database

De foutcode is als volgt:

Geef een variabele van type Func als argument door aan de Count-methode,EF zoekt alle gegevens in de hele tabel op en filtert deze uit het geheugen。 De gegenereerde SQL-instructie ziet er als volgt uit:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Uitgevoerde DbCommand (8ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      SELECTEER [c]. [id], [c]. [client_type], [c]. [status], [c]. [huurder]
      VAN [tabel] AS [c]
De juiste code is als volgt:

Het correcte schrijven voegt een where-voorwaarde toe uit de database en geeft vervolgens direct de waarde van de telling terug。 De gegenereerde SQL-instructie ziet er als volgt uit:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Uitgevoerde DbCommand (4ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      SELECTEER AANTAL(*)
      VAN [tabel] AS [c]
      WAAR [c]. [client_type] = 1


EF Core Series 4 kijkt naar de gegenereerde SQL-instructies
https://www.itsvse.com/thread-9564-1-1.html
ef toont de gegenereerde SQL-instructies
https://www.itsvse.com/thread-3813-1-1.html

Met Func delegate calls zijnSystem.Linq.EnumerableTel hieronder

De uitdrukking die wordt aangeroepen met Expression<Func<T, bool>> isSystem.Linq.QueryableTel hieronder



(Einde)





Vorig:[Oefenen] Maak een groene no-install versie van Java JDK Windows
Volgend:Java stuurt SMS-verificatiecodes via de Alibaba Cloud SMS SDK
Geplaatst op 26-09-2021 16:19:52 |
geleerd
Geplaatst op 26-09-2021 17:31:25 |
Ja, ik ben hier om weer te leren...
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com