我有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
对此有何解决方案?
答案 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