情况......
我正在为asp.net网站创建购物车。我有一个Cart对象,它将包含一个CartItem对象列表。而不是为CartItem对象创建必要的属性,例如ID,ProductName,Description,Price ......我认为从数据集表继承数据流是很聪明的......
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中的代码,因为它是自动生成的。谢谢。
答案 0 :(得分:0)
你无法做你正在尝试继承的事情。但是,使用分部类有一种方便的方法。以下是您的操作:打开数据集,右键单击设计图面,然后从上下文菜单中选择“查看代码”。这将为数据集创建代码隐藏文件。然后按如下方式添加您的属性:
public partial class DanubeDataSet
{
partial class ProductsRow
{
public decimal TotalCost
{
get
{
return Quantity * Price;
}
}
}
}