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
Blazor: from 0 to SPA
SSL Certificates for everyone on Azure
Infrastructure as Code con Terraform
Eseguire del codice personalizzato al click di una checkbox in Blazor
Creare due extension method per serializzare un oggetto in JSON e viceversa utilizzando la libreria System.Text.Json
Gestire dati temporali di gRPC in ASP.NET Core e C#
Centralizzare la gestione delle entity multitenant in Entity Framework Core
Ridurre il codice per gestire gli eventi dei controlled component in una form con React
Ottimizzare la compilazione di applicazioni Angular con il Fast and Loose Incremental Checking di TypeScript
Usare domini personalizzati per Azure Storage tramite CDN
Usare gRPC come infrastruttura per i nostri servizi web
Utilizzare EF Core Power Tools per effettuare il reverse engineer di un database
I più letti di oggi
- Utilizzare le proprietà Init-only per inizializzare una proprietà in C# 9
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Effettuare il redirect da HTTP a HTTPS con la Azure CDN
- Gestione dei token negli input di testo con la Universal Windows Platform