Creare una chiave alternativa con più proprietà in un oggetto con Entity Framework Core

di Stefano Mostarda, in LINQ, Entity Framework,

Nello script #400 abbiamo visto che possiamo creare una chiave alternativa utilizzando il metodo HasAlternateKey in fase di configurazione. In quello script abbiamo visto che il metodo accetta una lambda che rappresenta le proprietà che fanno parte della chiave alternativa. Nel caso di una la chiave alternativa sia composta da una sola proprietà, la lambda ritorna la proprietà, mentre nel caso in cui la chiave alternativa contenga più proprietà dobbiamo ritornare un tipo anonimo contenente tutte le proprietà come mostrato nel seguente script

class MyContext : DbContext
{
  public DbSet<Person> People { get; set; }

  protected override void OnModelCreating(ModelBuilder modelBuilder)
  {
    modelBuilder.Entity<Person>()
      .HasAlternateKey(c => new { c.Name, c.BirthDate, c.City });
  }
}

class Person{
  public int Id { get; set; }
  public string Name { get; set; }
  public string BirthDate { get; set; }
  public string City { get; set; }
  public string Code { get; set; }
}

In questo esempio, tramite convenzione la proprietà Id è la chiave primaria, e tramite codice le proprietà Name, BirthDate e City compongono la chiave alternativa.

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