Sin dalla prima versione, sia Entity Framework che Entity Framework Core possono lavorare esclusivamente con entity che offono un costruttore senza parametri. A partire dalla versione 2.1, Entity Framework Core supera questo problema offrendo la possibilità di avere entity senza il costruttore di default, ma con costruttori con parametri.
Il meccanismo con cui EF Core invoca il costruttore con parametri prevede che il nome e il tipo dei parametri sia lo stesso delle proprietà mappate. PRendiamo come esempio il seguente codice.
public class Person { public Person(int id, string name) { Id = id; Name = name; } public int Id { get; set; } public string Name { get; set; } }
In questo caso, poiché il nome e il tipo dei parametri id e name del costruttore coincidono con le omonime proprietà (anche se differiscono nel casing), EF Core invoca il costruttore passando in input l'id e il nome recuperati dal database.
Questa tecnica ha alcune limitazioni. Ad esempio, vengono prese in considerazione solo le proprietà che hanno un setter e non è possibile passare al costruttore navigation property.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eseguire script pre e post esecuzione di un workflow di GitHub
Utilizzare Containers in .NET Aspire
Ridurre il reflow cambiando il CSS
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Configurare e gestire sidecar container in Azure App Service
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Anonimizzare i dati sensibili nei log di Azure Front Door
Supportare la crittografia di ASP.NET Core con Azure Container App
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Path addizionali per gli asset in ASP.NET Core MVC
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
I più letti di oggi
- Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
- .NET Conference Italia 2025 - Milano
- The Agentic Day - Milano
- Gestione ciclo di vita in .NET Aspire
- Documentare i servizi REST con Swagger e OpenAPI con .NET 9
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!