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();
我正在尝试制作购物车,但我无法从 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();