我想设计一个Movie课程。现在一部电影将分配给它一些类型。防爆。电影“复仇者联盟”有流派:动作,冒险,科幻。现在我的应用程序维护了一个列表,列出了可以将一个子集分配给电影的所有类型。
我现有的模型设计有一个Movie实体,其中包含整个类型列表的集合。 Genre类只有一个IsSelected属性来帮助识别已分配给特定电影的类型子集。这提供了一个优势,因为当我设计用户界面来创建新电影时,我显示所有可用的类型,用户选择/检查适用于电影的类型。
public class Movie
{
public ObservableCollection<Genre> MovieGenres { get; set; }
}
但是,我认为这种做法有一个缺点。假设我有大约25种类型和大约500部电影,那么就创造了大约25 x 500种类型的对象。
你认为应该避免这种情况吗?
有没有更好的方法将类型与电影对象联系起来,这样可以减少创建这么多类型对象的需要,同时提供相同的UI优势?
或者有没有更好的方法来设计我的用户界面,我可以通过模型设计来利用它?
(我没有使用任何ORM工具,也不打算将来使用)
答案 0 :(得分:0)
对于像你这样的问题,你的方法当然不是推荐的方法。
通常,可以在genres
类中定义多值引用属性Movie
,此属性仅包含分配给特定影片的类型。
请注意,从逻辑上/概念上讲,您处理Movie
和MovieGenre
之间的单向关联,为电影分配流派。