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
Collegare applicazioni server e client con .NET Aspire
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Selettore CSS :has() e i suoi casi d'uso avanzati
Gestire la cancellazione di una richiesta in streaming da Blazor
Rendere le variabili read-only in una pipeline di Azure DevOps
Eliminare una project wiki di Azure DevOps
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Eseguire query in contemporanea con EF
Path addizionali per gli asset in ASP.NET Core MVC
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
La gestione della riconnessione al server di Blazor in .NET 9
Loggare le query più lente con Entity Framework