Nello script #463 abbiamo visto come mappare una tabella su più entity utilizzando il la tecnica di mapping Table-Splitting. Avendo due entity che rappresentano diversi campi sulla stessa tabella, dobbiamo modificare leggermente il nostro modo di persistere i dati. Riprendiamo il modello visto nello script #463.
public partial class PersonExtended { public int PersonId { get; set; } public string Notes { get; set; } public Person Person { get; set; } } public partial class Person { public int PersonId { get; set; } public string FirstName {get; set; } public string LastName {get; set; } public PersonExtended PersonExtended { get; set; } }
Per inserire una persona, dobbiamo prima istanziare un oggetto di tipo Person, poi un oggetto di tipo PersonExtended e poi associare il secondo al primo tramite la proprieta PersonExtended come mostrato nel prossimo esempio.
var p = new Person{ FirstName = "Stefano", LastName = "Mostarda", PersonExtended = new PersonExtended { Notes = "note", }, }; ctx.Add(p); ctx.SaveChanges();
Come si vede dal codice, le API di Entity Framework Core da usare per la persistenza sono sempre le stesse (Add e SaveChanges), quello che cambia è solo il modo di comporre gli oggetti.
Se non volessimo inserire le note, potremmo anche non impostare la proprietà PersonExtended e verrebbero inseriti solo i valori della classe Person.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
Le novità di Angular: i miglioramenti alla CLI
Routing statico e PreRendering in una Blazor Web App
Gestire domini wildcard in Azure Container Apps
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
.NET Conference Italia 2023
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Utilizzare Tailwind CSS all'interno di React: primi componenti
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Inizializzare i container in Azure Container Apps
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Creazione di componenti personalizzati in React.js con Tailwind CSS
I più letti di oggi
- Utilizzare WebAssembly con .NET, ovunque
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- Utilizzare il trigger SQL con le Azure Function
- Ottimizzazione dei block template in Angular 17
- Disabilitare automaticamente un workflow di GitHub (parte 2)