2
使用目標DTO帶有嵌套DTO爲Transformers.AliasToBean我有兩個DTO類這樣的:在NHibernate的
public class Mailing
{
public string MailingType {get;set;}
public DateTime? ValidUntil {get;set;}
public Address MailAddress {get;set;}
}
和
public class Address
{
public string Street {get;set;}
public string StreetNumber {get;set;}
public string ZIP {get;set;}
}
的根據實體simliar具有相同多到一個關係。
現在我想用一個查詢來讀取Mailing
的列表,防止使用foreach手動構建DTO。類似這樣的:
return this.session.QueryOver<MailingEntity>()
.JoinAlias(p => p.Address,() => addressAlias)
.Where(...)
.SelectList(list => list
.Select(p => p.Type).WithAlias(() => mailingDTO.MailingType)
.Select(p => p.ValidTo).WithAlias(() => mailingDTO.ValidUntil)
.Select(() => addressAlias.Street).WithAlias(() => addressDTO.Street)
.Select(() => addressAlias.ZIP).WithAlias(() => addressDTO.ZIP)
.Select(() => addressAlias.StreetNumber).WithAlias(() => addressDTO.StreetNumber)
.Select(() => addressDTO).WithAlias(() => mailingDTO.MailAddress)
.TransformUsing(Transformers.AliasToBean<Mailing>())
.List<Mailing>();
哪個不起作用。 有沒有辦法像這樣獲得嵌套的DTO,還是我必須分別使用幾個roudtrips手動創建DTO?
謝謝,好主意。我會測試它並給出反饋... – 2012-03-13 17:11:19
@Andreas H.反饋未找到 – kerzek 2013-05-22 13:53:04
我已經成功地使用了這種方法,但是,當我在子選擇內進行子選擇時有問題,即父>子集合>子採集。 查詢第三級時,我得到一個異常:「代碼應該是不可達的」 – 2016-03-31 08:14:08