我有很多涉及发票和产品的关系

时间:2017-09-29 18:26:55

标签: c# entity-framework

我正在创建Invoice和Product实体之间的多对多关系作为业余爱好 在我的InvoiceProductController中,我正在尝试创建一个InvoiceProduct,但是在创建invoiceProduct的过程中,由于某种原因,当我点击创建按钮时,Product QtyOnHand没有减少。

运行程序时出错,说Object引用没有设置为对象的实例。

我的InvoiceProductsController中有证据:

Product pro = db.InvoiceProducts.Find(invoiceProduct.Product).Product;
            pro.QtyOnHand -= invoiceProduct.QtyOrd;

在我创建InvoiceProduct之后放入它,我仍然得到错误。它仍然读取未设置为对象实例的对象。

1 个答案:

答案 0 :(得分:0)

这可能是由于延迟加载造成的吗?

如果是这种情况,下面的代码应该有效。

var pro = db.InvoiceProducts
             .Include("Product") //explicitly loading Product
             //for below: possibly x.Product.ID == invoiceProduct.Product.ID ?
             .Where(x=>x.Product == invoiceProduct.Product) 
             .FirstOrDefault().Product;
pro.QtyOnHand -= invoiceProduct.QtyOrd;