因此,基本上我希望创建一个功能,用户可以在其中将产品添加到其产品列表并将其保存到数据库。我的用户实体和产品实体具有一对多关系。我的计划是获取用户并检查用户是否登录(如果用户不为空),如果为空,则用户可以创建新的产品实体,并将其添加到用户的Product[]中,然后将其保存在数据库中。问题是,当我想把创建的产品添加到列表中时,我得到了ArgumentNullException。如何克服这个问题?有什么提示吗?
public class User
{
public int Id { get; set; }
public string UserName { get; set; }
public Product[] Products { get; set; }
}
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public User User { get; set; }
public int UserId { get; set; }
}
[HttpPost("CreateAndAddProduct")]
public async Task<ActionResult<Product[]>> AddProduct(string User)
{
ProductModel productModel=new ProductModel();
User user= await _context.Users.Where(x=>x.UserName==User).FirstOrDefaultAsync();
Product[] userList = u.Products;
if(user!=null)
{
var product = new Product
{
Name = "gloves",
UserId = user.Id
};
userList.Append(product); // here im getting ArgumentNullException
await _context.SaveChangesAsync();
}
return userList;
}
1条答案
按热度按时间htrmnn0y1#
由于这是一个1到N的关系,您需要在查询中包含Products,以便EF在数据库中进行连接。