我有ObjectA (有相应的ObjectADTO)和ObjectB的集合(有相应的ObjectBDTO)。如何在ObjectB上查询所有带有join的ObjectA并将它们都映射到DTO中?我真的不想从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; }
}//映射到=>
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; }
}发布于 2012-06-06 14:29:26
可以做这样的事情:
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();我没有检查VS中的语法,但是您已经明白了
https://stackoverflow.com/questions/10897613
复制相似问题