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
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Creare agenti facilmente con Azure AI Agent Service
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Usare le navigation property in QuickGrid di Blazor
Usare il colore CSS per migliorare lo stile della pagina
Creare una custom property in GitHub
Gestire gli accessi con Token su Azure Container Registry
Utilizzare l nesting nativo dei CSS
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Recuperare l'ultima versione di una release di GitHub
Supportare lo HierarchyID di Sql Server in Entity Framework 8
Creare un webhook in Azure DevOps