对象在创建对象后返回null

时间:2014-10-18 13:49:34

标签: c# asp.net entity-framework

我正在使用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")
        {

        }
    }
}

由于 贝

1 个答案:

答案 0 :(得分:4)

如果我没有弄错,你需要在Entity Framework中使用属性而不是变量。变化

public DbSet<Product> products;

public DbSet<Product> products { get; set; }