动态类型和视图

时间:2012-12-03 06:57:26

标签: c# asp.net-mvc entity-framework

我有几个活动:电影,表演,体育赛事等。最初我想创建基类(Event)和事件类型的单独类:Film class,Sport class ....
但是,很多课程都是空的,因为他们没有特定的领域。因此,我决定创建一个类Event并将类EventType分开。并为一个类中的所有事件创建所有字段:

public class Event
{
   public string Name { get; set; }
   public string Description { get; set; }
   public string Duration { get; set; }
   public string DirectorList { get; set; }
   public string ActorList { get; set; }
   public string Genre { get; set; }

   public EventType Type {get; set;}
   ...
}

public class EventType
{
   public string Name {get; set;}
}

但某些类型的事件可能没有某些字段。例如,体育赛事没有ActorListDirectorList。我决定在控制器的动作中确定事件的类型并显示相应的视图。假设我们有七种事件类型和七种观点。在CMS中,用户想要添加新的事件类型,但此事件类型的视图不是由我创建的。

如何允许用户创建新的事件类型并为此类型生成视图?

PS。您对我的数据库设计有何看法?
谢谢,抱歉我的英文。

1 个答案:

答案 0 :(得分:0)

您应该在此处使用继承来定义仅包含基本属性的Event类:

public class Event
{
   public string Name { get; set; }
   public string Description { get; set; }
}

然后创建另一个类:

public class FilmEvent : Event
{
   public string ActorList { get; set; }
   public string DirectorList { get; set; }
}

现在可以从类本身推断出类型。