Per default, EF Core mappa le proprietà di un owned type nella stassa tabella su cui è mappata la classe che contiene l'owned type. Prendiamo il seguente modello che prevede una classe Order e un Owned Type AddressInfo.
public class AddressInfo { public string Address { get; set; } } public class Order { public int Id { get; set; } public ShippingAddress Address { get; set; } public BillingAddress Address { get; set; } }
In questo caso, EF Core si aspetta una tabella Order con i campi Id, ShippingAddress_Address e BillingAddress_Address. Tuttavia possiamo modificare il mapping di default per salvare i dati degli indirizzi in una tabella esterna a quella dell'ordine utilizzando il metodo ToTable subito dopo aver invocato il metodo OwnsOne.
modelBuilder.Entity<Order>().OwnsOne(p => p.BillingAddress).ToTable("OrderAddress"); modelBuilder.Entity<Order>().OwnsOne(p => p.ShippingAddress).ToTable("OrderAddress");
Va sempre ricordato che i dati di un owned type vengono sempre recuperati insieme all'entity principale anche se si trovano in una tabella esterna. Questo significa che quando recuperiamo l'ordine, viene sempre fatta una join verso la tabella degli indirizzi senza necessità di usare il metodo Include.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Aggiungere tag a una query con Entity Framework Core 2.2
Sfruttare le funzionalità degli Azure Cognitive Service on-edge con i container
Introduzione a DevOps e Azure DevOps
Configurare backup di lungo termine per Azure SQL Database
Realizzare il sorting di una lista utilizzando Angular CDK
Mantenere la retrocompatibilità per i decorator ViewChild e ContentChild di Angular
Disabilitare i filtri globali a livello di query in Entity Framework Core
Trattare i warning come eccezioni durante la compilazione in Visual Studio
Sicurezza nelle applicazioni ASP.NET Core
Data Access with Entity Framework
Migliorare la documentazione Swagger di ASP.NET Core Web API
Eseguire comandi PowerShell da remoto su una Virtual Machine di Azure
I più letti di oggi
- Personalizzare il controllo CarouselView in Xamarin Forms
- Creare un component che visualizza gli errori di validazione in Angular
- rilasciato #netcore31, con SDK e runtime. aggiornamenti anche per #aspnet31, #efcore31, #ef64, #blazor e #VS2019 info e download su https://aspit.co/byj
- C# 8
- Chiamare direttamente un numero di telefono con HTML5
- What's new in Xamarin and Visual Studio for macos