在我们的应用程序中,我们将现有的 DAL 从 EF 4.0 升级到 EF 5.0。
目前已经实现了通用存储库模式,我们正在使用 POCO 对象作为业务实体。
这些对象使用 WCF 属性进行修饰,因为它们在 Web 服务接口中传递并使用部分类进行扩展,以便添加更多业务和验证方法。此外,每个 POCO 实体都继承自基类“BusinessEntity”和接口“IBusinessEntity”,以便轻松使用泛型存储库方法。
我们计划将业务实体与 POCO 对象解耦,以使后者成为只有属性而没有逻辑的普通类。
然而,在阅读了该主题之后,似乎当前的技术状态是采用 Code First 方法并直接保留域实体(即使当然不可能对所有情况进行概括)。
相关答案1,相关答案2。
在我们的例子中,保留带有业务逻辑的 POCO 对象并仅应用与 EF 5.0 (DbContext) 相关的更改是否有意义?或者我们应该在存储库中引入一个映射层?通过这种方式,应用程序将在业务实体上运行,并且存储库层将从外部隐藏 POCO 对象。然而,缺点是引入了复杂性,特别是在处理通用存储库时。
提前致谢。