我正在考虑在即将到来的项目中使用AutoMapper并试图找到可能的“瓶颈”。目前我能想象的最复杂的情况如下:一个域类,由数据库中的 3 个(例如)表表示(我的数据访问层是 LINQ to SQL)。要构建类的实例,我需要执行 3 个查询:
- 从表 A 中按 ID 选择(1 行,直接转到
Class
属性) - 从表 B 中按 ID 选择(0..1 行,转到可选
Class.Code
属性) - 从表 C 中按 ID 选择(0..N 行,进入
Class.Parameters
集合)
而且我不确定如何配置映射。以下是我考虑的选项:
- 执行 3 次查询和映射
Tuple<A,B,C>
->Class
- 使用外连接组合查询 1 和 2(更有效)。但是我如何处理匿名类型?
- 将 datacontext 注入映射,定义
A
->Class
映射并让类型转换器完成工作?
没有一个看起来像胜利。你有什么建议?
编辑:嗯,这种复杂的情况很少见(10-20%),我可以手动完成,剩下的 80-90% 用 AutoMapper 就好了。但我想知道 AutoMapper 是否不是为此类策略而设计的,或者我错过了一些重要的东西。