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