2
Вот три класса в моем домене:Выбор ребенка проекция из родительского
public class Quote : IEntity, IAggregateRoot {
public int QuoteId { get; set; }
public IEnumerable<Price> Prices { get; set; }
}
public class Price : IEntity {
public int PriceId { get; set; }
public Carrier Carrier { get; set; }
public decimal? Price { get; set; }
public Quote Quote { get; set; }
}
public class Carrier : IEntity, IAggregateRoot {
public int CarrierId { get; set; }
public string Name { get; set; }
}
Я хочу, чтобы иметь возможность выбрать проекцию на основе цен в котировке. Тип возврата должен быть IEnumerable < [анонимный объект]>. Я должен запустить запрос из Quote, потому что это объект корневого домена. Вот то, что я до сих пор:
session.Linq<Quote>()
.Expand("Prices")
.Where(q => q.QuoteId == 1)
.Select(q => {
//this is where I don't know what to do.
//Maybe somthing like this:
return q.Prices.Select(p => {
new { CustomerName = p.Customer.Name, Price = p.Price }
});
});
Отображения бы:
- Quote.Prices> HasMany (один-ко-многим)
- Price.Quote> Список литературы (многие к -она)
- Price.Carrier> Список литературы (один-к-одному)
Как это было бы с QueryOver? –