使用集合属性为实体建模

时间:2015-03-15 13:20:29

标签: .net wpf observablecollection data-modeling class-design

我想设计一个Movie课程。现在一部电影将分配给它一些类型。防爆。电影“复仇者联盟”有流派:动作,冒险,科幻。现在我的应用程序维护了一个列表,列出了可以将一个子集分配给电影的所有类型。

我现有的模型设计有一个Movie实体,其中包含整个类型列表的集合。 Genre类只有一个IsSelected属性来帮助识别已分配给特定电影的类型子集。这提供了一个优势,因为当我设计用户界面来创建新电影时,我显示所有可用的类型,用户选择/检查适用于电影的类型。

public class Movie
{
    public ObservableCollection<Genre> MovieGenres { get; set; }
}

但是,我认为这种做法有一个缺点。假设我有大约25种类型和大约500部电影,那么就创造了大约25 x 500种类型的对象。

你认为应该避免这种情况吗?

有没有更好的方法将类型与电影对象联系起来,这样可以减少创建这么多类型对象的需要,同时提供相同的UI优势?

或者有没有更好的方法来设计我的用户界面,我可以通过模型设计来利用它?

(我没有使用任何ORM工具,也不打算将来使用)

1 个答案:

答案 0 :(得分:0)

对于像你这样的问题,你的方法当然不是推荐的方法。

通常,可以在genres类中定义多值引用属性Movie,此属性仅包含分配给特定影片的类型。

请注意,从逻辑上/概念上讲,您处理MovieMovieGenre之间的单向关联,为电影分配流派。