У меня есть две сущности с разбиением таблицы - Order и OrderDetail (какая часть Order), CompositeOrder и CompositeOrderDetail (какая часть CompositeOrder).Также OrderDetail должен содержать ссылку на CompositeOrderDetail, а CompositeOrder должен содержать коллекцию сущностей Order.Я попытался настроить эти отношения, но структура сущности использует CompositeOrderId1 вместо CompositeOrderId в OrderDetail в качестве внешнего ключа.Как мне настроить Entites для решения этой проблемы?
public class OrderDetail
{
public Guid Id { get; set; }
public CompositeOrderDetail CompositeOrder { get; set; }
}
public class Order : OrderDetail
{
...
}
public class CompositeOrder
{
public Guid Id { get; set; }
public CompositeOrderDetail Detail { get; set; }
public ICollection<Order> Orders { get; set; }
}
public class CompositeOrderDetail
{
public Guid Id { get; set; }
}
public void Configure(EntityTypeBuilder<CompositeOrder> builder)
{
builder.ToTable("CompositeOrder");
builder.HasMany(co => co.Orders)
.WithOne()
.HasForeignKey("CompositeOrderId")
.IsRequired();
builder.HasOne(m => m.Detail)
.WithOne()
.HasForeignKey<CompositeOrderDetail>(m => m.Id);
}
public void Configure(EntityTypeBuilder<OrderDetail> builder)
{
builder.ToTable("Order")
.HasOne<Order>()
.WithOne()
.HasForeignKey<OrderDetail>(o => o.Id);
builder.HasOne(o => o.CompositeOrder)
.WithMany()
.HasForeignKey("CompositeOrderId");
}
public void Configure(EntityTypeBuilder<Order> builder)
{
builder.ToTable("Order")
.HasBaseType((string)null);
}