Я ищу предложения о том, как отфильтровать запрос LINQ ниже. Вы можете видеть, что в нем задействовано 6 таблиц, а выбранная таблица - это b-бронирование. Затем, в зависимости от того, являются ли переданные переменные нулевыми или нет, я добавляю предложения WHERE, но, как я понимаю, если я выбираю из b, тогда я могу только добавить предложение WHERE в b, поэтому, если я хочу добавить WHERE к любой из других связанных таблиц, как я могу это сделать в LINQ?WHERE предложения в многозадачном запросе LINQ
public List<DAL.Booking> GetBookingMain(string _booking, string _project, string _customer, string _location,
string _supplierSKU, string _eisSKU, string _assetREF)
{
List<DAL.Booking> list_item = new List<DAL.Booking>();
var qry = (from b in edc.Bookings
join cu in edc.Customers on b.customer_ref equals cu.customer_ref
join loc in edc.Locations on cu.customer_ref equals loc.customer_ref
join pl in edc.Pallets on i.booking_ref equals pl.booking_id
join pp in edc.ProductsToPallets on pl.PalletID equals pp.palletID
join pr in edc.Products on pp.productID equals pr.product_id
select b);
if (_booking != Null)
{
qry = qry.Where(b => b.booking_ref == _booking);
}
if (_project != Null)
{
qry = qry.Where(b => b.project_ref == _project);
}
if (_customer != Null)
{
qry = qry.Where(b => b.customer_ref == _customer);
}
if (_location != Null)
{
//add WHERE for table loc
}
if (_supplierSKU != Null)
{
//add WHERE for table pr
}
if (_eisSKU != Null)
{
//add WHERE for table pr
}
if (_assetREF != Null)
{
//add WHERE for table pp
}
list_item = qry.ToList();
return list_item;
}
Благодаря
Вы пробовали, например, 'qry = qry.Where (i => loc.something == value);'? – Jamiec
yep, intellisense только предоставляет поля, доступные в b – DarkW1nter
ах, да теперь я вижу - из-за 'select b' – Jamiec