Я создаю приложение MVC2 для управления схемами выставления счетов. Эти схемы выставления счетов могут быть различных типов, например, ежедневно, еженедельно, ежемесячно и т. д., и все типы имеют свои специфические свойства. Моя классовая структура выглядит так:
public abstract class BillingScheme { /* basic billing scheme properties */ }
public class BillingSchemeMonthly : BillingScheme
{
public string SpecificMonths;
}
//etc. for other scheme types
Я извлекаю схему выставления счетов через базовый класс, используя идентификатор схемы выставления счетов, и он дает мне объект правильного типа.
Свойство SpecificMonths сопоставляется с полем varchar базы данных, которое содержит -разделенную строку номеров месяцев. Я хочу разделить это на массив, чтобы я мог создать список флажков, и я бы предпочел сделать это со свойством фасадов в viewmodel. Я мог бы сделать это прямо в представлении, но это, кажется, идет вразрез с шаблоном MVC.
Проблема в том, что я могу создать эту модель только для BillingSchemeMonthly, и я не могу привести BillingSchemeMonthly к BillingSchemeMonthlyViewModel.
Я бы предпочел не реализовывать метод клонирования в viewmodel, поскольку вся схема биллинга довольно велика, и количество свойств может возрасти.
Заранее спасибо за любую помощь.