这有效:
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和RootY)。在我的MailOrders的上下文中,只要我有一个对它的引用+名称及其代码和电子邮件地址,它的根本并不重要。
IMailOrderAssignee与映射文件中的any-tag映射。 (这很有效,但我也可以用鉴别器来做)。
我的问题:
是否可以使用结果 一个投影查询中的方法所以 结果是在DTO?
是否可以使用合同 在投影查询中(我猜 不...)
答案 0 :(得分:1)
为什么不在内存中进行投影?
示例:
var criteria = someCriteriaThatReturnsPersistentEntities;
var items = criteria.List<IMailOrderAssignee>();
var projected = items.Select(i => new
{
Prop1 = i.SomeMethod(),
Etc
});