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
Collegare applicazioni server e client con .NET Aspire
Utilizzare i variable font nel CSS
Filtering sulle colonne in una QuickGrid di Blazor
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Utilizzare QuickGrid di Blazor con Entity Framework
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Triggerare una pipeline su un altro repository di Azure DevOps
Generare la software bill of material (SBOM) in GitHub
Applicare un filtro per recuperare alcune issue di GitHub
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Anonimizzare i dati sensibili nei log di Azure Front Door