Orm 构建数据访问层

Orm 构建数据访问层,orm,architecture,repository-pattern,data-access-layer,Orm,Architecture,Repository Pattern,Data Access Layer,对于我的应用程序,我正在考虑使用ORM,目前正在尝试决定域层是否应该通过数据访问对象、存储库或其他方式与之交互?我不太愿意将ORM与存储库配对,因为如果ORM实体与域对象相同,它们可能会变得多余,但拥有一个大DAO似乎很难。我想保持我的SQL集中化,但我不知道这些选项中哪一个(如果有的话)最有意义。关于合适的设计模式有什么建议吗?这是基于观点的,但我倾向于从我的领域模型中创建单独的实体。域模型需要与您的域紧密匹配,而您的实体需要对您的存储紧密建模。它们最初可能匹配得非常紧密,而且看起来确实多余,

对于我的应用程序,我正在考虑使用ORM,目前正在尝试决定域层是否应该通过数据访问对象、存储库或其他方式与之交互?我不太愿意将ORM与存储库配对,因为如果ORM实体与域对象相同,它们可能会变得多余,但拥有一个大DAO似乎很难。我想保持我的SQL集中化,但我不知道这些选项中哪一个(如果有的话)最有意义。关于合适的设计模式有什么建议吗?

这是基于观点的,但我倾向于从我的领域模型中创建单独的实体。域模型需要与您的域紧密匹配,而您的实体需要对您的存储紧密建模。它们最初可能匹配得非常紧密,而且看起来确实多余,但它们通常会很快地相互偏离

话虽如此,只将域实体映射到持久性实体的包装器通常感觉很糟糕,而且是一种巨大的时间浪费。此外,直到游戏的后期,当你进行重构时,你才意识到你的领域不太正确,但你不想修改你的持久层,这是没有回报的

好消息是,大多数语言/框架都有某种形式的映射库,可以让您自动从一个对象映射到另一个结构类似的对象。这是一个很好的方法,可以在一开始就加快这一速度,同时在需求发生变化时仍然可以灵活地创建手动映射