实体对象到业务对象

时间:2016-04-18 22:57:22

标签: c# asp.net-mvc entity-framework automapper

我正在开发一个新项目,并希望使用MVC和实体框架。出于分离关注的目的。我计划像这样构建我的项目..

  • MyProject.Web(此项目包含MVC的V和C)
  • MyProject.Model(此项目包含MVC的M,以便可以重复使用和共享。这是我的业务对象/域对象所在的位置)
  • MyProject.BLL(这是我编写业务逻辑并通过界面提供的地方)
  • MyProject.Entity(这是我的DAL - 向导将使用db first方法生成实体对象)

我的问题是在BLL中将实体对象转换为业务对象的最佳方法是什么?我的映射要求我连接两个表并计算一个映射到业务对象中的字段的总和。

不确定这是一个很好的例子但是我想加入客户表和订单表并为同一客户获得两条记录。一个是放置在AM中的订单,另一个是放置在PM中的订单。我需要计算当天的总数并将其映射到业务对象中的字段。

自动识别而不是手动编写DTO代码,但我不确定它是否可以进行复杂的映射(使用总和计算)?

有没有办法在EF 6中手动配置自定义地图来执行此操作?

1 个答案:

答案 0 :(得分:0)

使用Automapper,您可以将Projections用于复杂映射或使用AutoMapper的QueryableExtensions帮助方法。

请参阅以下链接中的“聚合”部分。

  

LINQ可以支持聚合查询,AutoMapper支持LINQ   扩展方法

https://github.com/AutoMapper/AutoMapper/wiki/Queryable-Extensions