Entity Framework 空引用上的关系绑定

Entity Framework Relationship binding on a null reference

我正在尝试制作购物车,但我无法从 Cart 访问产品名称。

这是 Product

的模型
public class Product
{
    [Key]
    public int ProductID { get; set; }
    public string Name { get; set; }
}

这是 Cart

的模型
public class CartItem
{
    [Key]
    public int ItemID { get; set; }
    public string CartID { get; set; }
    public int Quanity { get; set; }

    public int ProductID { get; set; }
    public virtual Product Product { get; set; }
}

这是临时的IActionResult查看购物车

public IActionResult Index()
    {
        var cartItem = _context.CartItems.Where(a => a.CartID == "abcd").ToList();

        return View(cartItem);
    }

这是 IActionResult

的视图
@foreach (var item in Model)
{
   @item.Product.Name <br />
}

这是RuntimeBinderException: Cannot perform runtime binding on a null reference

当我只使用 @item.ItemID@item.CartID@item.Quantity@item.ProductID 时它工作正常。如何从购物车中获取产品名称?

您可以使用 Include 扩展方法预先加载相关实体 (Product) 作为查询的一部分:

var cartItem = _context.CartItems.Include(ci=>ci.Products)
                                 .Where(a => a.CartID == "abcd")
                                 .ToList();