2

Entity SQL を使用して null 値をカウントするのに問題があります。

SQL のコード:

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

そしてLinq to 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

NULL が正しくカウントされないのはなぜですか? どうすれば修正できますか?

4

1 に答える 1

0

Entity SQL と Transact-SQL の違い

Entity SQL は count(*) 集計をサポートしていません。代わりに count(0) を使用してください。

通常COUNT(*)、行をカウントしながらCOUNT(g.City)、NOT NULL 値の量を提供します。

于 2013-07-20T14:01:12.150 に答える