У меня есть следующее выражение в linq (это объединение), и я выбираю в "J", потому что мне нужно использовать J позже (в настоящее время я просто выбираю J, но как только я это исправлю, я планирую использовать J в другом подзапросе после)
Но это не позволит мне указать точку, в которой используется сторона "V", поэтому v.IdOFfice недопустим.
Я попытался обменяться соединениями, и вот что происходит, я не могу использовать «GVT» ..
С указанием места, где он работает идеально, но мне нужно указать 2 источника, которые присутствуют в 2 таблицах ... следовательно, IdOffice и IdTariff находятся в собственных таблицах ... они не оба ....
(from gvt in Tariffs
join v in Items
on gvt.IdGroupItem equals v.IdGroupItem
into j
where v.IdOffice == 1 && gvt.IdTariff == 111
select j).Take(50)
Возможно, что-то глупое, кажется, таблица указана после объединения, которое я не могу использовать в где?
Есть идеи?
Спасибо
Это в основном то, чего я пытаюсь достичь
from gvt in Tariffs
join v in Items
on gvt.IdGroupItem equals v.IdGroupItem
into j
where v.IdOffice == 1 && gvt.IdTariff == 111
select new
{
id = v.IdItem
Tariff = from j
{
test = j.TariffDesc,
test1 = j.TariffPrice
}
В основном я получаю 1 запись с Id и полем, в котором столько же тарифов - если это имеет смысл?
}
Запрос работает отлично,
было бы неплохо иметь возможность использовать метод расширения (c #), например, так ... это возможно, чтобы я мог динамически устанавливать тариф ... так, например, я делаю запрос и у меня есть метод расширения (который я уже использую простые запросы) вот так
public static IQueryable<Models.ItemTariffCol> WithTariffId(this IQueryable<Models.ItemTariffCol> qry, int tariffId)
{
return from t in qry
where t.IdTarifa == tariffId
select t;
}
это делает его очень расширяемым? Если это нормально, где я могу это сделать, но запрос не в где
Спасибо.