如何在Repository模式中设计Model类?

时间:2018-06-10 00:33:56

标签: model repository-pattern repository-design

是否必须在存储库模式中为每个数据库表创建模型?或者我可以创建一个可以作为两个或多个数据库表的占位符的模型吗?

1 个答案:

答案 0 :(得分:1)

在存储库中,根据需要有多种方法来设计模型。因此,更好地关注业务需求。我会尝试解释一下。

聚合根

如果您正在进行域驱动设计,则每个多个表一个实体是通常采用的方法。这称为聚合根。聚合根可以包含多个嵌套聚合。所以,这看起来像一些复杂的类层次结构。

好处是,您的模型对您的域比您的数据库更友好。这真正有助于持久性不可知的发展。开发人员的主要关注点从持久性需求转移到域。

不是您的问题的一部分,如果您使用任何问题,这也有助于从完整的ORM中获取最大收益。

对于小型项目,这种方法通常都是过度杀戮。

每桌模型:

这是一种非常简单的方法,通常用于小型应用;特别是,如果你不做DDD。如果您的应用程序更像是面向数据库(如CRUD)而不是域,则首选此方法。您可能无法使用完整ORM的一些优良功能,如广泛的映射功能,延迟加载等。