【发布时间】:2011-03-25 03:37:27
【问题描述】:
这行得通:
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);
这不起作用,因为有两个原因:
- 接口没有持久化器
- 方法以 Property 方式使用。
我在 Nhiberante 的世界中搜索了很多,但在我看来这很难。
IMailOrderAssignee 是两个根实体(我们称它们为 RootX 和 RootY)的接口。在我的 MailOrders 的上下文中,它是什么根并不重要,只要我有对它的引用 + 名称以及它的代码和电子邮件地址。
IMailOrderAssignee 使用映射文件中的 any - 标记进行映射。 (效果很好,但我也可以使用鉴别器)。
我的问题:
是否可以使用结果 投影查询中的方法,所以 结果在 DTO 中?
是否可以使用合约 在投影查询中(我猜 不是……)
【问题讨论】:
标签: c# nhibernate .net-3.5 interface .net-2.0