Tengo una entidad con cientos de propiedades. Si bien es bueno en la base de datos, en las clases es inconveniente. La pregunta es, ¿cómo puedo agrupar algunas propiedades de la clase en otras clases para que sea más conveniente en la programación, manteniendo solo una tabla?
Ejemplo de pseudocódigo:
class Work {
WorkVolumes WorkVolumes;
...
SomeOtherGroupOfProperties SomeOtherGroup;
}
class WorkVolumes {
float VolumeOfWorkType1;
float VolumeOfWorkType2;
...
float VolumeEtc;
}
class SomeOtherGroupOfProperties {
int SomeOtherProperty;
...
}
Mientras que en la base de datos solo hay una tabla Trabajar con columnas VolumeOfWorkType1, VolumeOfWorkType2, VolumeEtc, SomeOtherProperty, ...
consulte "División automática de tablas para los tipos de entidades propias" aquí: https://blogs.msdn.microsoft.com/dotnet/2017/06/28/announcing-ef-core-2-0preview-2/
para el siguiente modelo solo se crea una tabla:
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; } }