LINQ подзапрашивают В

Я - новичок с IQueryable, лямбда-выражениями и LINQ в целом. Я хотел бы вставить подзапрос где пункт как это:

Пример кода:

SELECT * FROM CLIENT c WHERE c.ETAT IN (
 SELECT DDV_COLUMN_VAL FROM DATA_DICT_VAL
 WHERE TBI_TABLE_NAME = 'CLIENT' AND DD_COLUMN_NAME = 'STATUS'
           AND DDV_COLUMN_VAL_LANG_DSC_1 LIKE ('ac%'))

Как я перевожу это в LINQ?

7
задан Patrice Cote 13 August 2010 в 14:40
поделиться

3 ответа

var innerquery = from x in context.DataDictVal
                 where x.TbiTableName == myTableNameVariable
                    && x.DdColumnName == "Status"
                    && x.DdbColumnValLangDsc1.StartsWith("ac")
                 select x.DdvColumnVal;

var query = from c in context.Client
            where innerquery.Contains(c.Etat)
            select c;
13
ответ дан 6 December 2019 в 10:46
поделиться
from c in db.Client
where (from d in db.DataDictVal 
       where d.TblTableName == "Client" 
         && d.DDColumnName == "Status"
         && dd.DdvColumnValLandDsc1.StartsWith("ac"))
       .Contains(c.Etat)
select c;
4
ответ дан 6 December 2019 в 10:46
поделиться

Если вы новичок в Linq, вам абсолютно необходимы два важных инструмента. Первый - это инструмент, который преобразует большинство T-SQL запросов в Linq, называется Linqer (http://www.sqltolinq.com/). Он должен справиться с запросом в вашем вопросе. Другой инструмент - LinqPad (http://www.linqpad.net/). Он поможет вам изучить Linq, когда вы будете практиковаться с запросами.

Я часто использую Linqer для преобразования T-SQL запроса, а затем использую LinqPad для его тонкой настройки.

1
ответ дан 6 December 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: