出现这种异常的原因是因为没有将要添加的实体对象赋值或初始化,导致参数为空。可以通过以下例子进行解决:
public class MyContext : DbContext
{
public DbSet Customers { get; set; }
}
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
}
public class MyController : Controller
{
private readonly MyContext _context;
public MyController(MyContext context)
{
_context = context;
}
public IActionResult Create()
{
var customer = new Customer(); // 创建实体对象
customer.Name = "Tom"; // 为实体属性赋值
_context.Customers.Add(customer); // 添加对象到数据库
_context.SaveChanges(); // 保存更改
return RedirectToAction(nameof(Index));
}
}
在上述例子中,我们可以看到在使用_context.Customers.Add(customer)
添加对象到数据库之前,已经对实体对象的属性进行了赋值,避免了空指针异常的发生。