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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestire undefined e partial nelle reactive forms di Angular
Sfruttare lo streaming di una chiamata Http da Blazor
Limitare le richieste lato server con l'interactive routing di Blazor 8
Creare gruppi di client per Event Grid MQTT
Usare una container image come runner di GitHub Actions
Usare Refit e Polly in Blazor per creare client affidabili e fortemente tipizzati
Usare lo spread operator con i collection initializer in C#
Inizializzare i container in Azure Container Apps
Utilizzare gli snapshot con Azure File shares
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Utilizzare un service principal per accedere a Azure Container Registry
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core