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(或類似名稱)的集合這是訂單行應具有產品/數量/價格詳情,而不是訂單本身。

相關問題