寻找一种模式来帮助将DTO映射到业务逻辑层中的EF4实体

时间:2011-08-19 21:02:07

标签: .net entity-framework design-patterns automapper dto

我有一个使用纯DTO的WCF服务层。

在服务器端,我将这些DTO传递给我的业务逻辑层,基本上是每个实体或实体组的一组“Manager”类。

Manager类方法将DTO作为参数,在每个方法的第一行中,我使用DTO并使用AutoMapper将其映射到我的Entity Framework POCO。然后我执行我的LinQ查询或存储库方法(我使用的是来自EF 4.1的DBContext),如果需要,将结果实体映射回DTO并将其返回给WCF服务方法。

我的Manager类中几乎每个方法都在进行这种映射和重映射,这是一大堆重复的样板代码。有关模式的任何建议我可以用来减少冗余吗?

3 个答案:

答案 0 :(得分:0)

您不需要模式 - 您只需要将该重复代码包装在辅助方法中并重用该方法。

答案 1 :(得分:0)

我们将所有映射放在一个单独的dll中。它使测试更容易,并消除了重复代码的需要。

您还可以使用automapper进一步减少代码量,请参阅:http://automapper.codeplex.com/

答案 2 :(得分:0)

如果要在WCF体系结构中使用Entity Framework。我认为最好的选择是POCO自我跟踪实体,它是作为Visual Studio项目模板提供的,可以从Designer中创建。

MSDN : Working with Self-Tracking Entities