DbContext.SaveChanges方法保存数据

时间:2016-04-19 15:34:20

标签: c# asp.net entity-framework-6

每当我尝试保存或更新数据时,我的Web应用程序都使用EF 6.0 通过EF,它会抛出一个" null引用异常" .. 此方法负责创建产品

private Product createProduct()
{
    Product product = new Product();
    product.Name = txtName.Text;
    product.Price = Convert.ToInt32(txtPrice.Text);
    product.ProductTypeId = Convert.ToInt32(ddlType.SelectedValue);
    product.Desciption = txtDesciption.Text;
    product.Image = ddlImage.SelectedValue;
    return product;
}

此方法正在调用"插入产品方法"

protected void btnSubmit_Click(object sender, EventArgs e)
{
    ProductModel model = new ProductModel();
    Product product = createProduct();
    lblStatus.Text = model.InsertProduct(product);
}

此方法正在执行"产品插入功能"它抛出异常

public string InsertProduct(Product product)
{
    try
    {
        PizzaHuttSliceEntities db = new PizzaHuttSliceEntities();
        db.Products.Add(product);
        db.SaveChanges();
        return product.Name + "was successfully inserted! ";
    }
    catch (Exception e)
    {
        return "Error: " + e;
    }
}

这是产品类

public partial class Product
{
    public Product()
    {
        this.Carts = new HashSet<Cart>();
    }

    public int ID { get; set; }
    public int ProductTypeId { get; set; }
    public string Name { get; set; }
    public int Price { get; set; }
    public string Desciption { get; set; }
    public string Image { get; set; }

    public virtual ICollection<Cart> Carts { get; set; }
    public virtual ProductType ProductType { get; set; }
}

这是跟踪信息

enter image description here

1 个答案:

答案 0 :(得分:1)

解决!实际上问题出在ddlType DataSource,我只是为SqlDataSource刷新了ddlType的模式,问题就消失了。因为我对数据库进行了更新,这就是ddlType指向不再存在的此类引用的原因,因此DbContext.SaveChanges方法抛出null reference exception 感谢所有关注我的问题的人