Nello script #412 abbiamo visto che Entity Framework Core, a differenza di Entity framework 6, è in grado di gestire le relazioni tra entity senza bisogno di proprietà che mappino direttamente verso le foreign key. Tuttavia, questo non è sempre il caso. Quando modelliamo ordini e dettagli, è normale avere nell'ordine una lista di dettagli, ma nel dettaglio potremmo anche mantenere solo l'id dell'ordine senza avere una proprietà ordine.
In questi casi il mapping della relazione va impostato come segue.
modelBuilder.Entity<Ordine>() .HasMany(p => p.Dettagli) .WithOne() .HasForeignKey(p => p.IdOrdine);
Il metodo HasMany specifica che un ordine ha più dettagli. Il metodo WithOne specifica che un dettaglio appartiene a un solo ordine. In questo caso non specifichiamo nulla perche nel dettaglio non abbiamo una proprietà ordine. Infine il metodo HasForeignKey specifica quale sia la proprietà nel dettaglio che fa da foreign key verso l'ordine.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Code scanning e advanced security con Azure DevOps
Gestire undefined e partial nelle reactive forms di Angular
Usare un KeyedService di default in ASP.NET Core 8
Eseguire le GitHub Actions offline
Criptare la comunicazione con mTLS in Azure Container Apps
Utilizzare il trigger SQL con le Azure Function
Gestire liste di tipi semplici con Entity Framework Core
Usare il versioning con i controller di ASP.NET Core Web API
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Utilizzare Tailwind CSS all'interno di React: installazione
Utilizzare Tailwind CSS all'interno di React: primi componenti
Effettuare delete massive con Entity Framework Core 7