解耦应用程序设计中的非POCO ORM

时间:2011-01-05 19:17:16

标签: .net design-patterns domain-driven-design repository llblgenpro

我需要使用LLBLGEN或EF4。 我知道可以将poco与EF4一起使用,但我需要使用一般方法。 所以我的目标是实现非poco orm并将其与域分离。 这意味着我不能在域中使用DAL实体,因为它将被耦合,因此我想使用存储库。 如果我在DAL和Domain之间使用一些DTO,那么我将丢失DAL实体的内部状态,并且必须映射并将DTO重新映射到实体。这就是为什么我想为每个只具有属性声明的实体编写额外的接口。存储库将使用这些接口,DAL实体不会丢失其状态。 要在DAL中创建新对象,我将使用抽象工厂。

缺点:无需在DAL实体中映射重映射DTO,DAL实体不会丢失其状态。 优点:需要编写额外的接口并跟踪实体是否更新并将此修改与接口同步,编写额外的代码以实现抽象工厂(但这并不困难)。

我个人认为值得。 你能否分享一下你对这个解决方案的看法?

1 个答案:

答案 0 :(得分:1)

你听起来很困惑。您想创建域模型吗?然后这样做。建立干燥。不要创建单独的属性接口。域模型保存状态,因此导出DAL状态。通过内省域模型,映射应该几乎是自动的(所有简单的映射)。