Это работает:
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);
Это не работает из-за двух вещей:
- нет интерфейса для интерфейса
- Методы используются в свойствах.
Я много искал в мире Ниберанте, но мне кажется, что это довольно сложно.
IMailOrderAssignee - это интерфейс для двух рутинеров (назовем их RootX и RootY). В контексте моих MailOrders не важно, какой это корень, если у меня есть ссылка на него + имя, его код и адреса электронной почты.
IMailOrderAssignee сопоставляется с тегом any - в файле сопоставления. (это прекрасно работает, но я мог бы сделать это и с дискриминатором).
Мой вопрос:
Можно ли использовать результат
метода в запросе проекции так
результат в DTO?
Возможно ли использование контрактов
в проекционных запросах (наверное
нет ...)