0

我有一个名为PRODUCT的表,其中存储了产品的Price。 因为我知道某个产品的价格可以随时更改,所以我有一张名为ORDER的表格,其中包含某人正在订购的产品的Quantity以及应从中提取的价格TodaysPrice在交易完成的那一刻,列Price从相关表中的另一个属性值分配属性值

问题是,我不知道如何提取属性的值并将此值分配给LightSwitch中的另一个属性。


到目前为止,我已经成功地认为是包括这在Order_Created()

this.Order.SelectedItem.Price = this.Order.SelectedItem.Product.Price;

但上面的代码不工作,我得到这个异常:

NullReferenceException was unhandled by user code

我不确定是否正确,任何帮助将不胜感激。我想知道如何在Visual Studio 2010中使用LightSwitch 2011进行此操作。

非常感谢!

回答

0

您的代码可能运行时SelectedItem产品,当前没有值。在引用实体的任何属性之前,您应该始终检查null。

这样的(注意每个实体如何引用该实体的任何属性前检查:

if (this.Order != null) 
    && (this.Order.SelectedItem != null) 
    && (this.Order.SelectedItem.Product != null) 
{ 
    this.Order.SelectedItem.Price = this.Order.SelectedItem.Product.Price; 
} 

的* Order_Created *方法是不是有这样的代码正确的地方,因为在该点时订单已创建,您还不知道哪个产品将选择选择。将此代码的正确位置放在* Product_Changed *方法中,以便当选择(或更改)Product时, 产品的当前价格th en获得订单

只是在另一个说明中,除非你已经简化了表格的例子,我认为你错过了一张表。一个订购通常会之类的东西相关的客户,一个日期等,这也将有OrderLines(或类似名称)的集合这是订单行应具有产品/数量/价格详情,而不是订单本身。

相关问题