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
Supportare lo HierarchyID di Sql Server in Entity Framework 8
Recuperare l'ultima versione di una release di GitHub
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Change tracking e composition in Entity Framework
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Utilizzare i primary constructor di C# per inizializzare le proprietà
Utilizzare Azure Cosmos DB con i vettori
Disabilitare automaticamente un workflow di GitHub
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Simulare Azure Cosmos DB in locale con Docker