我有一个使用纯DTO的WCF服务层。
在服务器端,我将这些DTO传递给我的业务逻辑层,基本上是每个实体或实体组的一组“Manager”类。
Manager类方法将DTO作为参数,在每个方法的第一行中,我使用DTO并使用AutoMapper将其映射到我的Entity Framework POCO。然后我执行我的LinQ查询或存储库方法(我使用的是来自EF 4.1的DBContext),如果需要,将结果实体映射回DTO并将其返回给WCF服务方法。
我的Manager类中几乎每个方法都在进行这种映射和重映射,这是一大堆重复的样板代码。有关模式的任何建议我可以用来减少冗余吗?
答案 0 :(得分:0)
您不需要模式 - 您只需要将该重复代码包装在辅助方法中并重用该方法。
答案 1 :(得分:0)
我们将所有映射放在一个单独的dll中。它使测试更容易,并消除了重复代码的需要。
您还可以使用automapper进一步减少代码量,请参阅:http://automapper.codeplex.com/
答案 2 :(得分:0)
如果要在WCF体系结构中使用Entity Framework。我认为最好的选择是POCO自我跟踪实体,它是作为Visual Studio项目模板提供的,可以从Designer中创建。