0
代替使用方法,這工作:NHibernate的投影查詢DTO,在財產
projections.Add(Projections.Property(Member<MailOrder>.From(x => x.AssigneeCode).QualifiedPath), Member<MailOrderItem>.From(x => x.AssigneeCode).Path);
projections.Add(Projections.Property(Member<MailOrder>.From(x => x.AssigneeName).QualifiedPath), Member<MailOrderItem>.From(x => x.AssigneeName).Path);
projections.Add(Projections.Property(Member<MailOrder>.From(x => x.AssigneeType).QualifiedPath), Member<MailOrderItem>.From(x => x.AssigneeType).Path);
這不偏離航向
projections.Add(Projections.Property(Member<IMailOrderAssignee>.From(x => x.AssigneeCode).QualifiedPath), Member<MailOrderItem>.From(x => x.Code).Path);
projections.Add(Projections.Property(Member<IMailOrderAssignee>.From(x => x.AssigneeName).QualifiedPath), Member<MailOrderItem>.From(x => x.GetName()).Path);
projections.Add(Projections.Property(Member<IMailOrderAssignee>.From(x => x.AssigneeType).QualifiedPath), Member<MailOrderItem>.From(x => x.GetType()).Path);
這並不是因爲兩件事情的工作:
- 該接口沒有殘留物
- 方法以屬性方式使用。
我在Nhiberante的世界裏搜尋了很多,但在我看來這是相當困難的。
的IMailOrderAssignee是兩個rootentity的(姑且稱之爲RootX和樂蒂)的接口。在我的MailOrders環境中,只要我有一個對它的引用+名稱及其代碼和電子郵件地址,它的根是什麼並不重要。
IMailOrderAssignee與映射文件中的any標籤映射。 (這很好,但我也可以用鑑別器來做)。
我的問題:
是否有可能使用結果的方法 在投影查詢,以便 的結果是DTO?
是否有可能在投影querys使用合同 (我猜 不...)
是的,這可以幫助。 但我也有使用 標籤的另一個問題。 它將FK限制僅限於其中一個表格。 所以,我退後一步,等一下,看到我看到這個<>。這不是他們分享的數據,而是行爲。我只分享了ID ...並且這是不正確的... MailOrders共享了一切,除了引用之外,所以我使用了Inheritence映射。 感謝您的回答,雖然我從中學到了一些東西=>在投影查詢本身中是不可能的,但之後我可以做我的東西:D –
kriebb
2010-08-12 08:16:43