2014-12-16 4 views
0

Я хочу выделить все из таблицы, но добавить дополнительный столбец, содержащий count() других строк в другой таблице. Как я могу это сделать? Думаю, группа не то, что я ищу. То, что я хочу сделать в SQL:Linq to SQL: выберите дополнительный счет

Select *,(select count(*) from tableName2 where y=1) as count 
from tableName where x = 1 

ответ

0

Я нашел решение:

Context.TableName.Where(y>y.Column.Equals(1)) 
.Select(x=>new{Object=x,Count = Context.TableName2.Count()}) 

сгенерирует это:

Select *, (select count(*) from TableName2) 
from TableName 
Where TableName.y = 1 
+0

Но это не то же самое, он будет считать ВСЕ строки в tablename2 независимо от выбранного x – Pleun

0

Я думаю, что вы ищете

from r in context.tablename 
where r.Column == 1 
select new { y, y.Tablename2.Count() } 

Но даже без явного выбора вы п Всегда использовать счетчик ..

var r = context.tablename.Single(s=>s.column == 1); 

И futher на вас можно использовать

r.Tablename2.Count() 

В зависимости от ваших настроек DataContext это приведет к дополнительному заявлению SQL, так что первый является более эффективным