LINQ to Entities implementa entrambi i metodi First e Single. Questi due metodi permettono di ottenere lo stesso risultato ovvero ottenere un singolo oggetto da una query. La differenza tra i metodi sta nel codice SQL generato.
Nel caso del metodo First, viene inviata al database una TOP 1 così che solo il primo record venga estratto. Nel caso del metodo Single, viene inviata al database una TOP 2 per verificare che effettivamente ci sia solo un record sul database. Se la query restituisce 2 record, viene sollevata un'eccezione.
Usare Single significa aumentare (seppur impercettibilmente) il numero di dati che potrebbe viaggiare per la rete. Tuttavia questo si verifica solo quando c'è una condizione di errore e quindi (vista la rarità dell'evento) è una situazione tollerabile. Di conseguenza l'uso di Single è consigliato quando si deve ottenere un solo record e si vuol essere sicuri che non ce ne siano altri per la stessa ricerca che effettuiamo.
ctx.Orders.Single(o => o.OrderId == 1)
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Creare gruppi di client per Event Grid MQTT
Load test di ASP.NET Core con k6
Determinare lo stato di un pod in Kubernetes
Installare le Web App site extension tramite una pipeline di Azure DevOps
Usare una container image come runner di GitHub Actions
Usare le collection expression per inizializzare una lista di oggetti in C#
Disabilitare automaticamente un workflow di GitHub (parte 2)
Sfruttare lo streaming di una chiamata Http da Blazor
Utilizzare politiche di resiliency con Azure Container App
Limitare le richieste lato server con l'interactive routing di Blazor 8
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP