0
我正在爲一個asp.net網站創建一個購物車。我有一個Cart對象,它將包含一個CartItem對象列表。而不是創造的CartItem對象,如ID,產品名稱,說明,價格所需的屬性...我認爲這將是聰明的簡單繼承這樣的數據集表中的數據行...
public class CartItem : DanubeDataSet.ProductsRow
{
public int Quantity { get; set; }
public CartItem(System.Data.DataRowBuilder rb) : base(rb)
{
Quantity = 1;
}
public decimal TotalCost
{
get
{
return Quantity * Price;
}
}
}
現在如果我獲取包含我想要的行的DanubeDataSet.ProductsTable對象,如何設置我的基礎對象中的所有屬性?這是行不通的...
DanubeDataSet.ProductsDataTable productTable = new DanubeDataSetTableAdapters.ProductsTableAdapter().GetProductByID(itemId);
CartItem newItem = (CartItem)productTable[0];
items.Add(newItem);
它不能從類型DanubeDataSet.ProductsRow強制轉換爲CartItem。我明白這是爲什麼,但必須有一種方法將ProductsRow的數據移動到CartItem,因爲它包含ProductsRow的所有屬性。我錯了嗎?
如果您有解決方案,請記住,我不想更改DanubeDataSet.ProductsRow中的代碼,因爲它是自動生成的。謝謝。
感謝您的快速反應。我喜歡你的想法,但我無法遵循你的指示。當我雙擊DanubeDataSet.xsd打開數據集時,當我右鍵單擊以顯示上下文菜單時,View Code不是一個選項。只有「添加」擴展,讓我添加一個表適配器,數據表,查詢等和「預覽數據」,屬性。建議? – Theo 2012-04-14 04:18:20
我手動添加了代碼後面的代碼,它解決了。謝謝。 – Theo 2012-04-14 04:49:23
我不確定爲什麼查看代碼選項不可用,它可能是您的Visual Studio版本不支持這一點,甚至在C#語言中也不支持它。我很高興這只是一點點手動工作。 – 2012-04-14 22:59:10