1

NH Linq拡張機能を使用してデータベースにクエリを実行しようとしていますが、ここで問題が発生します。

私はCustomerオブジェクトを持っていて、それはタイプのプロパティを持っていて、コレクションOrderを持っています、そして最後にオブジェクトは''と呼ばれるタイプのプロパティを持っています。私がやりたいのは、customerIdが与えられた場合、すべての顧客情報(OrderとOrderline)を取得し、オブジェクトのコレクションを価格プロパティで注文する必要があることです。わかりやすくするために、他のすべての詳細は省略しました。OrderICollection<Orderline>OrderlineintpriceOrderlineOrderline's

Customer注:この場合、との間の関係Orderはです1 to 1。顧客は1つの注文しか持てませんが、コレクションの種類から推測できるようOrderに多くの注文を含めることができます。Orderlines

助けてくれてありがとう...

4

1 に答える 1

1
var query = from customer in session.Query<Customer>()
            let order = customer.Order
            from orderline in order.Orderlines
            orderby orderlines.price
            select new
            {
                CustomerId = customer.Id,
                CustomerName = customer.Name,
                OrderId = order.Id,
                OrderLineId = orderline.Id,
                Price = orderline.Price,
            };

var results = query.ToLookup(a => a.CustomerId)
    .Select(g => new CustomerDto
    {
        Id = g.Key,
        CustomerName = g.First().CustomerName,
        OrderLines =  g.Select(a => new OrderLineDto(a.OrderLineId, a.Price)).ToList()
    }).ToList();
于 2012-10-16T10:51:49.577 に答える