0

我有一个购物车,可以从两个单独的桌子上接收物品。

一个表包含单个项目,另一个包含多个项目的框。

我正在使用 ApiController 将项目插入购物车,问题是当我插入 ID 为 1 的框时,购物车中的 FK 将 ID 更新为 1,但没有指示它是项目还是框。

我试图在购物车表中为每个项目和盒子 ID 设置多个 FK,但代码首先给出了关于 FK 中的空值的错误。我已经尝试使它们可以为空,但这会在尝试加入表以进行数据检索时导致错误。

下面显示的关系的最佳实践是什么?

在此处输入图像描述

推车型号:

  public class Cart
  {
    [Key]
    public int RecordID { get; set; }
    public string CartID { get; set; }
    public int ItemID { get; set; }
    public int BoxID { get; set; }
    public int Qty { get; set; }
    public System.DateTime DateCreated { get; set; }

    public Item Item{ get; set; }
    public Box Box { get; set; }

    public string UserID { get; set; }
    public ApplicationUser User { get; set; }
}
4

1 回答 1

1

您为什么不将盒子视为单独的项目,结果您将拥有一张桌子而不是两张桌子。

例如。

public class Cart
{
    [Key]
    public int RecordID { get; set; }
    public string CartID { get; set; }
    public int ItemID { get; set; }
    public int Qty { get; set; }
    public System.DateTime DateCreated { get; set; }

    public Item Item{ get; set; }

    public string UserID { get; set; }
    public ApplicationUser User { get; set; }
}
public class Item
{
    [Key]
    public int ItemID { get; set; }
    .
    .
    .
}

在这种情况下,您将能够为单个项目和盒子项目分配不同的 ID。

您还可以使用 Qty 属性以防盒子中有相同的物品。

于 2019-03-07T14:05:22.237 回答