다중웨어 하우스 주문에 대한 세부 정보를 저장하는 데 필요한 엔티티가 4 개 있습니다.EF : 복수 열 외래 키
주문 - 주문 헤더.
웨어 하우스 -웨어 하우스의 세부 정보입니다.
OrderLines - 주문에 대한 제품의 세부 정보 (해당웨어 하우스가 속한 항목 포함).
OrderWarehouse - 단일 창고에만 관련된 주문에 대한 세부 정보입니다.
public class Order
{
public int Id { get; set; }
public virtual ICollection<OrderWarehouse> OrderWarehouses { get; set; }
public virtual ICollection<OrderLine> OrderLines { get; set; }
}
public class Warehouse
{
public int Id { get; set; }
public virtual ICollection<OrderWarehouse> OrderWarehouses { get; set; }
public virtual ICollection<OrderLine> OrderLines { get; set; }
}
public class OrderLine
{
public int Id { get; set; }
public int OrderId { get; set; }
public int ProductId { get; set; }
public int WarehouseId { get; set; }
[ForeignKey("OrderId")]
public virtual Order Order { get; set; }
[ForeignKey("WarehouseId")]
public virtual Warehouse Warehouse { get; set; }
public virtual OrderWarehouse OrderWarehouse { get; set; } // THIS IS WHERE I AM STRUGGLING
}
public class OrderWarehouse
{
[Key, Column(Order = 0)]
public int OrderId { get; set; }
[Key, Column(Order = 1)]
public int WarehouseId { get; set; }
[ForeignKey("OrderId")]
public virtual Order Order { get; set; }
[ForeignKey("WarehouseId")]
public virtual Warehouse Warehouse { get; set; }
public virtual ICollection<OrderLine> OrderLines { get; set; } // THIS IS WHERE I AM STRUGGLING
}
OrderLines와 OrderWarehouse간에 올바르게 정의 된 관계가없는 것 같습니다.
키는 OrderId, WarehouseId로 구성됩니다.
컨텍스트에서 정의해야하지만 모든 시도에서 오류가 발생합니다.
나를 도와 줄 수 있습니까?
편집 :
내가하려고하면이 :
modelBuilder.Entity<OrderLine>()
.HasOptional(u => u.OrderWarehouse)
.WithMany()
.HasForeignKey(u => new { u.OrderId, u.WarehouseId });
내가 얻을 :
OrderLine_OrderWarehouse : 역할에 참조 제한 조건 'OrderLine_OrderWarehouse_Target' 관계와 다중성 충돌 ' OrderLine_OrderWarehouse '를 선택하십시오. 종속 역할에있는 모든 속성 은 nullable이 아니므로, 주체 의 다중성은 '1'이어야합니다.