Это SQL, который я хочу (ClearinghouseKey
- это bigint
):
select *
from ConsOutput O
where O.ClearinghouseKey IN (
select distinct P.clearinghouseKey
from Project P
Inner join LandUseInProject L on L.ClearinghouseKey = P.ClearinghouseKey
where P.ProjectLocationKey IN ('L101', 'L102', 'L103')
and L.LandUseKey IN ('U000', 'U001', 'U002', 'U003')
)
Внутренний запрос прост и дает правильные результаты в LINQPad:
var innerQuery = (from p in Projects
join l in LandUseInProjects on p.ClearinghouseKey equals l.ClearinghouseKey
where locations.Contains(p.ProjectLocationKey)
&& (landuses.Contains(l.LandUseKey))
select new { p.ClearinghouseKey }).Distinct();
Но внешний запрос выдает ошибку: Введите аргументы из ... Содержит .. Не может быть выведено из использования:
var returnQuery = from o in OperOutput
where (innerQuery).Contains(o.ClearinghouseKey)
select o;
Это потому, что ClearinghouseKey - это bigint? Есть ли другие способы написать этот запрос?
Спасибо,
Жанна