Ситуация ...Скопируйте свойства одного объекта другому объекту с тем же основанием
Я создаю корзину покупок для сайта asp.net. У меня есть объект Cart, который будет содержать список объектов CartItem. Вместо того, чтобы создать необходимые свойства объекта CartItem, такие как ID, ProductName, описание, цена ... Я думал, что это было бы умным, чтобы просто унаследовать DataRow из таблицы набора данных, как это ...
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. Я понимаю, почему это так, но есть способ переместить данные ProductRow в CartItem, поскольку он содержит все свойства ProductRow. Я ошибаюсь?
Если у вас есть решение, имейте в виду, что я не хочу менять код в файле DanubeDataSet.ProductsRow, поскольку он автогенерируется. Спасибо.
Спасибо за быстрый ответ. Мне нравится ваша идея, но я не могу следовать вашим указаниям. Когда я дважды щелкаю DanubeDataSet.xsd, чтобы открыть набор данных, View Code не является параметром, когда я нажимаю правой кнопкой мыши, чтобы отобразить контекстное меню. Существует только «Добавить», который расширяется, чтобы я мог добавить адаптер таблицы, datatable, query и т. Д. И «Предварительный просмотр данных», «Свойства». Предложения? – Theo
Я вручную добавил код за файлом, и он сработал. Спасибо. – Theo
Я не уверен, почему опция «Код просмотра» недоступна, возможно, ваша версия Visual Studio не поддерживает это, даже на языке C# она ее поддерживает. Я рад, что это сработало с небольшим ручным усилием. –