Utilizzare le Data Annotation per descrivere il mapping tra la classe ed il database non è sempre la soluzione ideale specie se vogliamo mantenere le nostre classi di dominio ignoranti rispetto al motore di persistenza. In quest'ultimo caso, possiamo aggiungere codice alla classe DbContext per specificare il mapping senza intaccare le classi di business.
Per fare questo basta eseguire l'override del metodo OnModelCreating della classe DbContext e specificare il mapping. In questo caso ci assicuriamo che la proprietà Name della classe Person sia obbligatoria.
public partial class MyContext : DbContext { protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Person>().Property(c => c.Name).IsRequired(); base.OnModelCreating(modelBuilder); } ... }
Tramite il metodo Entity recuperiamo la classe da mappare, con il metodo Property recuperiamo la proprietà ed infine tramite il metodo IsRequired impostiamo l'obbligatorietà.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare alias per tipi generici e tuple in C#
Usare un KeyedService di default in ASP.NET Core 8
Cambiare la chiave di partizionamento di Azure Cosmos DB
Generare velocemente pagine CRUD in Blazor con QuickGrid
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Eseguire query verso tipi non mappati in Entity Framework Core
Usare le navigation property in QuickGrid di Blazor
Gestire domini wildcard in Azure Container Apps
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
Eseguire una GroupBy per entity in Entity Framework
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Miglioramenti nell'accessibilità con Angular CDK