Как написать такие же запросы в EF?Подпроцесс Entity Framework
select * from table1 where col1 in (select col1 from table2 where col2 = 'xyz')
или
select * from table1 where col1 not in (select col1 from table2 where col2 = 'xyz')
Я пытался что-то вроде этих
from t1 in table1
where (from t2 in table2 where col2 = 'xyz' select t2.col1).Contains(t1.col1)
select t1
и
from t1 in table1
where !(from t2 in table2 where col2 = 'xyz' select t2.col1).Contains(t1.col1)
select t1
эти вопросы работают отлично LINQPad или Linq к Sql
Если существующие ответы не являются тем, что вы ищете, напишите * что произошло *, когда вы пытались использовать те выражения запроса, которые вы опубликовали. Вы получили ошибку времени компиляции? Ошибка выполнения? Какая ошибка? Или вы просто не получили ожидаемых результатов? – Aaronaught
Прежде всего, за немедленный ответ! это то, что я пытаюсь выполнить - выберите * от table1 где somestringmanipulation (col1) в (выберите somestringmanipulation (col1) из table2 где Col2 = 'хуг') где table1 и table2 не имеет отношения , Я получаю следующую ошибку, когда пытаюсь использовать Содержит, но дает результаты в LinqPad LINQ to Entities не распознает метод 'Boolean Содержит [Int32] (System.Linq.IQueryable'1 [System. Int32], Int32), и этот метод не может быть переведен в выражение хранилища. – Gokulnath
Я не думаю, что смогу выполнить это, не используя IN или NOT IN, на время я планировал использовать хранимую процедуру, а позже я рассмотрю http://stackoverflow.com/questions/374267/contains -workaround-using-linq-to-entities – Gokulnath