私は次のクラスを持っています
public class Booking
{
public string Group { get; set; }
public BookingType Type { get; set; }
public BookingStatus Status { get; set; }
public InvoiceFreq { get; set; }
public InvoiceLevel { get; set; }
}
最後の 2 つのプロパティがグループ化された結果で 1 つの新しいフィールドを形成するように、Linq のすべてのプロパティでそれらをグループ化する必要があります。このような:
Group Type Status InvoiceType
-------------------------------------------
Group1 Online New Daily-Single
Group2 Phone Accepted Daily-Single
Group3 Store Accepted Weekly-Single
Group3 Store Accepted Weekly-Bulk
ここで、InvoiceFreq は Daily / Weekly で、InvoiceLevel = Single または Bulk です。
これまでのクエリは次のとおりです。
var query = from b in Bookings
group b by new
{
b.Group,
b.Type,
b.Status,
b.InvoicingFrequency,
b.InvoicingLevel
} into bookingGroup
select new BookingSummaryLine()
{
Group = bookingGroup.Key.UserGroup,
Type = bookingGroup.Key.UserGroup,
Status = bookingGroup.Key.FinancialStatus,
InvType = String.Format({0}-{1},bookingGroup.Key.InvoicingFrequency, bookingGroup.Key.InvoicingLevel
};
2 つのプロパティが別々に匿名型にあるため、これは当然、望ましい結果をもたらしません。
Linqでこれを達成する方法はありますか?