实体对象到业务对象
Entity objects to business object
我正在开发一个新项目,想使用 MVC 和 entity framework。为了分离关注点。我打算像这样构建我的项目..
- MyProject.Web(本项目包含MVC的V和C)
- MyProject.Model(这个项目包含 MVC 的 M,以便它可以被重用和共享。这是我的业务对象/领域对象所在的地方)
- MyProject.BLL(这是我编写业务逻辑并通过接口提供的地方)
- MyProject.Entity(这是我的 DAL - 实体对象将由向导使用数据库优先方法生成)
我的问题是在我的 BLL 中将实体对象转换为业务对象的最佳方法是什么?我的映射要求我连接两个 table 并计算将映射到业务对象中的字段的总和。
不确定这是一个很好的例子,但可以说我加入了客户 table 并订购了 table,并为同一客户返回了两条记录。一种用于上午下的订单,一种用于下午下的订单。我需要计算当天的总数并将其映射到我的业务对象中的一个字段。
想到了 Automapper 而不是手动编码 DTO,但我不确定它是否可以进行复杂的映射(使用求和计算)?
有没有办法在 EF 6 中手动配置自定义地图来执行此操作?
借助 Automapper,您可以使用投影进行复杂的映射或使用 AutoMapper 的 QueryableExtensions 辅助方法。
请参阅下面的聚合部分 link。
LINQ can support aggregate queries, and AutoMapper supports LINQ
extension methods
https://github.com/AutoMapper/AutoMapper/wiki/Queryable-Extensions
我正在开发一个新项目,想使用 MVC 和 entity framework。为了分离关注点。我打算像这样构建我的项目..
- MyProject.Web(本项目包含MVC的V和C)
- MyProject.Model(这个项目包含 MVC 的 M,以便它可以被重用和共享。这是我的业务对象/领域对象所在的地方)
- MyProject.BLL(这是我编写业务逻辑并通过接口提供的地方)
- MyProject.Entity(这是我的 DAL - 实体对象将由向导使用数据库优先方法生成)
我的问题是在我的 BLL 中将实体对象转换为业务对象的最佳方法是什么?我的映射要求我连接两个 table 并计算将映射到业务对象中的字段的总和。
不确定这是一个很好的例子,但可以说我加入了客户 table 并订购了 table,并为同一客户返回了两条记录。一种用于上午下的订单,一种用于下午下的订单。我需要计算当天的总数并将其映射到我的业务对象中的一个字段。
想到了 Automapper 而不是手动编码 DTO,但我不确定它是否可以进行复杂的映射(使用求和计算)?
有没有办法在 EF 6 中手动配置自定义地图来执行此操作?
借助 Automapper,您可以使用投影进行复杂的映射或使用 AutoMapper 的 QueryableExtensions 辅助方法。
请参阅下面的聚合部分 link。
LINQ can support aggregate queries, and AutoMapper supports LINQ extension methods
https://github.com/AutoMapper/AutoMapper/wiki/Queryable-Extensions