Ho un'entità con centinaia di proprietà. Mentre è buono nel database, nelle classi è scomodo. La domanda è, come posso raggruppare alcune proprietà della classe in altre classi, quindi sarebbe più conveniente nella programmazione, mantenendo solo una tabella.
Esempio di pseudocodice:
class Work {
WorkVolumes WorkVolumes;
...
SomeOtherGroupOfProperties SomeOtherGroup;
}
class WorkVolumes {
float VolumeOfWorkType1;
float VolumeOfWorkType2;
...
float VolumeEtc;
}
class SomeOtherGroupOfProperties {
int SomeOtherProperty;
...
}
Mentre nel database c'è solo la tabella Work con colonne VolumeOfWorkType1, VolumeOfWorkType2, VolumeEtc, SomeOtherProperty, ...
vedere "Scissione automatica della tabella per tipi di entità di proprietà" qui: https://blogs.msdn.microsoft.com/dotnet/2017/06/28/announcing-ef-core-2-0-preview-2/
per il seguente modello viene creata una sola tabella:
modelBuilder.Entity<Order>().OwnsOne( p => p.OrderDetails, cb => { cb.OwnsOne(c => c.BillingAddress); cb.OwnsOne(c => c.ShippingAddress); }); public class Order { public int Id { get; set; } public OrderDetails OrderDetails { get; set; } } public class OrderDetails { public StreetAddress BillingAddress { get; set; } public StreetAddress ShippingAddress { get; set; } } public class StreetAddress { public string Street { get; set; } public string City { get; set; } }