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
Hosting di componenti WebAssembly in un'applicazione Blazor static
Creare form tipizzati con Angular
Gestire domini wildcard in Azure Container Apps
Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Sostituire la GitHub Action di login su private registry
Miglioramenti nell'accessibilità con Angular CDK
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Disabilitare automaticamente un workflow di GitHub
Implementare il throttling in ASP.NET Core
Applicare il versioning ai nostri endpoint ASP.NET Core Minimal API
I più letti di oggi
- Nuova versione per jQuery e prima alpha per jQuery Mobile
- Paginare i risultati con QuickGrid in Blazor
- Utilizzare il trigger SQL con le Azure Function
- Eliminare una determinata proprietà da un oggetto JavaScript
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- Modern web apps with Blazor