我正在使用ASP.net,使用代码优先方法来创建和使用数据库。
使用下面的代码,我得到一个类型' System.NullReferenceException'对象引用未设置为对象的实例(请参阅特定行的代码)。
当我浏览应用程序时,有问题的变量是' p'值为{Code_first_database.Models.Product},而不是null。
我看过What is a NullReferenceException and how do I fix it?和What does “Object reference not set to an instance of an object” mean?,但我似乎仍然无法看到问题。
任何帮助都非常感激。
HomeController.cs
namespace Code_first_database.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
Models.Product p = new Models.Product("Soft331", "Book");
using (var db = new Models.ProductDB())
{
db.products.Add(p); // **EXCEPTION THROWN HERE**
db.SaveChanges();
ViewBag.Message = "The number of products so far is " +
db.products.Count().ToString();
}
return View();
}
}
}
Product.cs
namespace Code_first_database.Models
{
public class Product
{
public int Id { get; set; }
public string Product_Code { get; set; }
public string Product_Name { get; set; }
public float Price { get; set; }
public int Stock { get; set; }
public Product(string p_code, string p_name)
{
Product_Code = p_code;
Product_Name = p_name;
}
}
}
ProductDB.cs
namespace Code_first_database.Models
{
public class ProductDB : DbContext
{
public DbSet<Product> products;
public ProductDB() : base("DefaultConnection")
{
}
}
}
由于 贝
答案 0 :(得分:4)
如果我没有弄错,你需要在Entity Framework中使用属性而不是变量。变化
public DbSet<Product> products;
到
public DbSet<Product> products { get; set; }