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 al massimo i topic space di Event Grid MQTT
Determinare lo stato di un pod in Kubernetes
Creare form tipizzati con Angular
Potenziare Azure AI Search con la ricerca vettoriale
Sfruttare lo streaming di una chiamata Http da Blazor
Usare un KeyedService di default in ASP.NET Core 8
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Utilizzare la session affinity con Azure Container Apps
Eseguire una query su SQL Azure tramite un workflow di GitHub
Eseguire attività con Azure Container Jobs
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
Criptare la comunicazione con mTLS in Azure Container Apps