2013-07-20 4 views
1

У меня возникли проблемы с подсчетом нулевых значений с использованием Entity SQL.entity sql count null

код в SQL:

SELECT Table.City, COUNT(*) 
FROM Table 
GROUP BY Table.City 

и в Linq к Entities:

var query1 = from g in context.Table 
      group g by g.City into mygroup 
      select new { mygroup, c = mygroup.Count() }; 

возвращают правильные значения:

NULL 4 
Boston 7 
Canberra 1 
London 5 
Melbourne 5 
New York 4 
Paris 15 
Sydney 4 

Однако, Entity SQL код, написанный вроде:

string queryString1 = "SELECT city, COUNT(g.City)" + 
         "FROM Entities.Table AS g " + 
         "GROUP BY g.City as city"; 

возвращается:

NULL 0 
Boston 7 
Canberra 1 
London 5 
Melbourne 5 
New York 4 
Paris 15 
Sydney 4 

Почему нули не учитываются должным образом? Как я могу это исправить?

ответ

0

How Entity SQL Differs from Transact-SQL

Entity SQL не поддерживает агрегат COUNT (*). Вместо этого используйте count (0).

Обычно COUNT(*) подсчитывает строки, в то время как COUNT(g.City) дает вам значение NOT NULL.

+0

Это хорошо работает. Благодарю. –