2015-10-06 4 views
0

Я хочу синтаксис SQL Entity Framework для IN пункта с подзапроса .. Мой оригинальный синтаксис подобенEntity Framework Синтаксис для пункта с использованием подзапроса

Select * from Table1 where Table1.id in (select table2.id from Table2 where 1=1) 

Я попытался написать это, как показано ниже:

"SELECT VALUE pkg_outer from 
    (SELECT distinct(pkg) from ExploitaEntities.mst_package as pkg WHERE 1=1 
    AND pkg.package_id in 
    (SELECT VALUE dtl_outer FROM(select distinct(dtl.package_id) from ExploitaEntities.mst_pkg_detail as dtl where 1=1)) 
    as dtl_outer) 
as pkg_outer" 

, но он дает мне ошибку, как показано ниже:

"The element type 'Edm.Int32' and the CollectionType 'Transient.collection[Transient.rowtype[(package_id,Edm.Int32(Nullable=True,DefaultValue=))](Nullable=True,DefaultValue=)]' 
are not compatible. The IN expression only supports entity, primitive, and reference types. 
Near IN set expression,..." 
+0

В вашем примере не используется Entity Framework. Где код EF? – Luke

+1

Вы не нуждаетесь в 'SELECT VALUE dtl_outer FROM (' part. –

+0

Это только структура сущности. Использовали простой sql вместо LINQ-кода, но только с использованием модели базы данных сущностей – Ashish

ответ

1
dbContext.TableName.Where(x => x.ColumnName.Value == "Test") 

Ссылка на таблицу в контексте Db. Вы можете установить условие для каждой прочитанной записи.

+0

Как это полезно для предложения IN? – Ashish

+0

Это переводит : 'SELECT * FROM TABLENAME WHERE COLUMNNAME IN ('Test')' –

+0

ok получил вашу точку .. , но мне нужно что-то вроде sub-запроса в моем разделе. SELECT * FROM TABLE NAME WHERE COUMNNAME IN (SELECT COUMN FROM OTHER TABLE) Большое спасибо – Ashish

Смежные вопросы