Linq 3 Таблица GroupJoin DefaultifEmpty Query

мои таблицы

Гостиница

Я БЫ имя

Цена

PriceID HotelID Цена (десятичная) Начальная дата

скидка

HotelID DiscountID DiscountType DiscountRate

Отношения Отель и цена 1 xn Отношения Отель и скидка 1 xn

но цена может быть нулевой, а скидка может быть нулевой

var result = data.Hotels.GroupJoin(data.Prices, h => h.OtelID, p => p.OtelID, (h, p) => new { hotel = o, f = f.Where(x => x.StartDate<= Datetime.Now.date ).OrderBy(x => x.Price) })
 .SelectMany(temp0 => temp0.f.DefaultIfEmpty(), (temp0, x) => new 
 {
 _hotel = temp0.hotel,
 _Price = x,
 _discount = ??
 )});

как написать запрос? Однолокальный отель, Однолокальный цена за ночь или NULL, Однолокальный скидка или Null

1 ответ

var result = from h in data.Hotels
where true //where condition if any
select new 
{
_hotel = h,
_price = h.Prices.Where(p=>p).FirstOrDefault()//condition
_discount = h.Discounts.Where(true).FirstOrDefault() //condition
}

licensed under cc by-sa 3.0 with attribution.