1
在EF的代码优先实现中,与存储库模式一起使用时,存储库是否应返回域模型的业务对象或数据模型中的简单实体?实体框架实体与业务对象的存储库模式
从我所知道的,Repository的意义在于返回业务对象,而不是实体,以便您可以与它们一起工作。但我发现的大多数代码示例都是返回数据模型,这对我来说似乎是个不好的主意,因为如果数据源发生更改,该怎么办?
在EF的代码优先实现中,与存储库模式一起使用时,存储库是否应返回域模型的业务对象或数据模型中的简单实体?实体框架实体与业务对象的存储库模式
从我所知道的,Repository的意义在于返回业务对象,而不是实体,以便您可以与它们一起工作。但我发现的大多数代码示例都是返回数据模型,这对我来说似乎是个不好的主意,因为如果数据源发生更改,该怎么办?
如果您使用CodeFirst开发,您也可以轻松地将您的业务对象用作数据模型。您可以在单独的DLL中编写Ef映射以删除EF对业务模型的依赖关系。如果您想将数据源更改为另一个而不是EF,则可以保留相同的Business(域)类。
谢谢。为了让我认识到这是代码优先的一个重点,我多花了一些时间阅读。 – devlord
这是否需要您的数据层引用您的域模型?这是控制反转吗? – devlord
这不是控制的倒置,但它似乎是域驱动的设计。您首先设计了业务逻辑和持久性/数据层中共享/常用的领域模型。 –