我完全理解了automapper映射的重点,但是我从来没有将项目用于数据库实体。有没有办法解释一个简单的例子,为什么我会使用项目来超过正常的映射?如何从非常简单的例子中了解Automapper项目的用法?
1
A
回答
0
阅读这里的例子:https://github.com/AutoMapper/AutoMapper/wiki/Queryable-Extensions,它看起来像ProjectTo方法为您节省一些编码:
给出的例子是:
Mapper.Initialize(cfg =>
cfg.CreateMap<OrderLine, OrderLineDTO>()
.ForMember(dto => dto.Item, conf => conf.MapFrom(ol => ol.Item.Name)));
public List<OrderLineDTO> GetLinesForOrder(int orderId)
{
using (var context = new orderEntities())
{
return context.OrderLines.Where(ol => ol.OrderId == orderId)
.ProjectTo<OrderLineDTO>().ToList();
}
}
使用ProjectTo不LINQ的选择并映射到DTO在同一时间,所以你不必做一个映射,你不必制定出你需要选择的实体字段。
如果你没有使用ProjectTo你必须使用类似下面的return语句来代替:
return context.OrderLines.Where(ol => ol.OrderId == orderId)
.Select(ol => new OrderLineDTO {Item = ol.Item.Name}).ToList());
0
阅读文档,但我想最主要的原因使用ProjectTo而不是地图是切割中间人。使用ProjectTo在运行时没有实体实例,只是查看模型。所以你从数据库项目来查看模型,而不是从数据库到实体来查看模型,就像使用Map一样。事实上,所有ProjectTo都会生成一个select语句。
context.Entities.Select(e=>new Dto { Property = e.Property, ...});
你可以see那个你自己。
相关问题
- 1. v4l2非常简单的例子
- 2. 非常非常非常简单的电子邮件选项
- 3. 非常简单的Scrapy +飞溅项目
- 4. 在.html中使用.kml和xpath的非常简单的例子
- 5. 在非常简单的例子中使用EasyMock.expect()编译错误?
- 6. 非常简单的Android项目 - 但从哪里开始?
- 7. 简单的例子,了解java中的Websockets
- 8. 了解python使用一个简单的例子多重处理
- 9. 在Eclipse中运行一个非常简单的Weld SE项目
- 10. 如何使用PHP解析一个非常简单的表格
- 11. 了解构造函数(非常简单的代码)
- 12. 非常简单的JSON解码
- 13. 在一个简单的例子中包含了几个git项目
- 14. 非常简单的子集选择
- 15. g ++ undefined参考非常简单的例子
- 16. C#的AutoMapper - 无意映射 - 简单的例子
- 17. 嗨,我是非常新的C++和我做了学校一个非常简单的项目,只是让
- 18. 非常简单的D3:如何画弧?
- 19. 非常非常简单的MVVM问题
- 20. Enterprise Architect - 如何制作(非常简单)用例图
- 21. 找不到一个非常简单的项目
- 22. 一个非常简单的项目与tkinter
- 23. Android,非常简单的BLE示例,无法连接到设备
- 24. 序言,非常简单的dcg语法
- 25. InvalidCastException从非常简单的linq查询
- 26. 非常简洁的Forth应用程序的例子?
- 27. 了解我目前的例子
- 28. 简单的例子
- 29. 简单的例子
- 30. 如何使用C#中的NDesk选项解析项目的简单列表#