sql >> Database teknologi >  >> RDS >> Sqlserver

Vil du returnere databaseposter ved hjælp af LinqToSql?

I tilfælde af at udføre en grundlæggende forespørgsel, kan den kan arbejde på den måde (det er bestemt muligt) - dog i tilfælde af at forespørge en nøgen tabel , det måske være, at det hele buffer først; du kan måske prøve at forespørge om optællingen under iterationen eller køre en sporing. I dette tilfælde har jeg mistanke den buffer først.

Re closed:det afhænger også af;p Hvis nogen bruger foreach , så ja:siden foreach disponerer eksplicit iteratoren via endelig . Imidlertid! Det er ikke garanteret, hvis nogen f.eks. gør det (meget fræk og slap):

var iter = yourData.GetEnumerator();
if(iter.MoveNext()) {
    Console.WriteLine(iter.Current.Name); // first record of, say, 20
}
// and don't dispose the iterator == bad

da iteratoren ikke a:bliver kasseret, b:udstøder sig selv og c:ikke går ned, vil den ikke lukke korrekt (enhver af disse 3 tilstande vil luk den ordentligt). Understregning:dette er et patologisk tilfælde:normalt er det rimeligt sikkert at sige "det vil lukke, ja".

Hvis du vil have garanteret ikke-buffering, skal du bemærke, at "dapper" har det, hvis du indstiller buffer til false :

IEnumerable<Customer> customers = connection.Query<Customer>(
       "select * from Customer", buffered: false);

(det kan også håndtere parametre osv.)



  1. Ulemper ved at gemme billeder i en database?

  2. Opdatering af rækker baseret på andre rækker i samme tabel

  3. MySQL-fejl opstår, når laravel-paginering bruges

  4. Kan et tal bruges til at navngive en MySQL-tabelkolonne?