Inserire dati in una tabella mappata con il Table-Splitting in Entity Framework Core 2.0

di Stefano Mostarda, in LINQ, Entity Framework,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi