Как бы я посчитал эти записи, используя Linq для NHibernate (3.1) - PullRequest
1 голос
/ 08 марта 2012

У меня есть объект, определенный так:

public class TestEntity : EntityBase
{
    public string Source {get;set;}
    public bool Suppressed {get;set;}

    /* other stuff */
}

Я хочу показать таблицу HTML, которая выглядит следующим образом:

Source       Suppressed      Not Suppressed
-------------------------------------------------
Source1      30              1225
Soure        7               573

Моя первая попытка запросить это было:

from e in _session.Query<TestEntity>()
group e by e.Source into g1
select new 
{
    Source = g1.Key,
    Suppressed = g1.Sum(x=>x.Suppressed ? 1 : 0),
    NotSuppressed = g1.Sum(x=>x.Suppressed ? 0 : 1),
}

Но, конечно же, Линк подавился троичным выражением при преобразовании его в SQL. Есть ли альтернативные способы сделать это?

Редактировать: Я попробовал предложение Дмитрия, и оно возвращает одинаковое количество для обоих. SQL, сгенерированный его предложением:

select
    customer0_.SourceA as col_0_0_,
    cast(count(*) as INT) as col_1_0_,
    cast(count(*) as INT) as col_2_0_ 
from
    dbo.Customers customer0_ 
group by
    customer0_.SourceA

Что, очевидно, не то, что я хочу ...

1 Ответ

3 голосов
/ 08 марта 2012

Как насчет того, чтобы сделать что-то вроде g1.Count(x => x.Suppressed == true)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...