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
Workflow di continuous deployment tramite pull request label in GitHub
Ottimizzare serializzazione e deserializzaione tramite le options con System.Text.Json
Sfruttare il portale Azure per creare script di automazione
Utilizzare la libreria EntityFrameworkCore.Exceptions per gestire le eccezioni di Entity Framework Core in modo tipizzato
Migrare un progetto ASP.NET Core da .NET 6 a .NET 7
Fare automaticamente il merge di una pull request con un workflow di GitHub
Organizzare il codice JavaScript utilizzando i moduli
Usare le variabili per personalizzare gli stili CSS
Confronto tra moduli in Javascript: ES e commonJS
Ricevere avvisi su metriche dei server Azure Arc
Utilizzare la parola chiave file nel codice C#
Semplificare il deployment di siti statici con Azure Static Web App