状況...
asp.net サイトのショッピング カートを作成しています。CartItem オブジェクトのリストを含む Cart オブジェクトがあります。ID、ProductName、Description、Price などの CartItem オブジェクトに必要なプロパティを作成するのではなく、このようにデータセット テーブルからデータ行を単純に継承する方が賢明だと思いました...
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 のすべてのプロパティが含まれているため、ProductsRow のデータを CartItem に移動する方法が必要です。私が間違っている?
解決策がある場合は、自動生成されるため、DanubeDataSet.ProductsRow のコードを変更したくないことに注意してください。ありがとうございました。