[英]Query DTO with DTO collection NHibernate
I have ObjectA (with corresponding ObjectADTO) with collection of ObjectB (with corresponding ObjectBDTO). 我有ObjectA(带有相应的ObjectADTO)和ObjectB(带有相应的ObjectBDTO)的集合。 How can I query all ObjectA with join on ObjectB and map them both into DTOs? 如何查询所有带有ObjectB上的join的ObjectA并将它们都映射到DTO? I really don`t want to query everything from db. 我真的不想查询数据库中的所有内容。
class ObjectA {
public string Name { get; set; }
public byte[] Garbage { get; set; }
public IEnumerable<ObjectB> Collection { get; set; }
}
class ObjectB {
public string Name { get; set; }
public byte[] Garbage { get; set; }
public ObjectA Parent { get; set; }
}
// MAPS to => //将MAPS转换为=>
class ObjectADTO {
public string Name { get; set; }
public IEnumerable<ObjectBDTO> Collection { get; set; }
}
class ObjectBDTO {
public string Name { get; set; }
public ObjectADTO Parent { get; set; }
}
Could do something like this: 可以做这样的事情:
ObjectB objectBAlias = null;
var query = _session.QueryOver<ObjectA>()
.JoinAlias(x=>x.Collection, ()=> objectBAlias, JoinType.LeftOuterJoin)
.List();
var list = query.Select(x=>new ObjectADTO
{
Name=x.Name,
Children=x.Collection.Select(c=>new ObjectBDTO {Name=c.Name, Parent=x).ToList()
})
.ToList();
Didn't check the syntax in VS, but you get the idea 没有检查VS中的语法,但是您知道了
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.