C# 在空引用上绑定实体框架关系
我正在尝试制作一个购物车,但是我无法从C# 在空引用上绑定实体框架关系,c#,asp.net-mvc,entity-framework,linq-to-entities,C#,Asp.net Mvc,Entity Framework,Linq To Entities,我正在尝试制作一个购物车,但是我无法从购物车访问产品名称 这是产品的型号 public class Product { [Key] public int ProductID { get; set; } public string Name { get; set; } } 这是购物车的模型 public class CartItem { [Key] public int ItemID { get; set; } public string Cart
购物车
访问产品名称
这是产品的型号
public class Product
{
[Key]
public int ProductID { get; set; }
public string Name { get; set; }
}
这是购物车的模型
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 />
}
@foreach(模型中的变量项)
{
@item.Product.Name
}
这就是RuntimeBinderException:无法对空引用执行运行时绑定
当我只使用@item.ItemID
,@item.CartID
,@item.Quantity
,@item.ProductID
时,它工作正常。如何从购物车中获取产品名称?您可以使用扩展方法将相关实体(产品
)作为查询的一部分进行加载:
var cartItem = _context.CartItems.Include(ci=>ci.Products)
.Where(a => a.CartID == "abcd")
.ToList();
您可以使用扩展方法加载相关实体(产品
),作为查询的一部分:
var cartItem = _context.CartItems.Include(ci=>ci.Products)
.Where(a => a.CartID == "abcd")
.ToList();