使用AutoMapper进行DTO映射

时间:2016-01-08 11:02:36

标签: c# .net linq c#-4.0 linq-to-entities

我有3个表tableA,tableB和tableC,其中tableB有一个来自tableA的外键 和tableC有一个来自tableB的外键,类似于tableD。

我有一个linq查询,我将数据作为 :

var temp  = await dbContext.tableA.Include(p=>p.tableB.Select(q=>q.tableC).Select(s=>s.tableD)).ToListAsync();

我在这里得到了正确的数据。但是当我把它映射到这样的DTO时:

{
List<DTOtableA> dtotest = new List<DTOTableA>();
//From DB
var list = _repo.GetData();

dtotest = list.Select(p=>Mapper.Map(p,new DTOTableA())).ToList();
}

这里只有tableA的数据在dtoTest中填充,即使DTOTableA在其类中引用了DTOTableB,并且DTOTableB也引用了DTOTableC

对此有何解决方案?

1 个答案:

答案 0 :(得分:0)

我想,你不需要mapper。你可以这样使用:

列表与LT; DTOtableA&gt; dtotest = await dbContext.tableA.Include(p =&gt; p.tableB.Select(q =&gt; q.tableC).Select(s =&gt; s.tableD))。ToListAsync();

dtotest [0] .tableB.attributeOfTableB

相关问题