2 Stimmen

Zählprojektion vom Kriterium

Ich versuche eine Abfrage zu schreiben, die ein Kriterium annimmt und eine Zählprojektion zurückgibt. Das ist derzeit, was ich benutze, aber es ist wirklich ineffizient. Haben Sie Ideen, wie ich das ersetzen kann?

    ///  Jedes Kriterium trägt eine Zeile bei 
    private IProjection AsCount( ICriterion kriterium )
    {
        if (kriterium == null) {
            return Projections.RowCount();
        } else {
            return Projections.Sum( Projections.Conditional( kriterium,
                Projections.Cast( NHibernateUtil.Int32, Projections.Constant( 1 ) ),
                Projections.Cast( NHibernateUtil.Int32, Projections.Constant( 0 ) ) ) );
        }
    }

Nur damit Sie wissen, was ich hier tatsächlich versuche zu tun, habe ich eine Reihe von Kriterienausdrücken und ich muss eine gruppierte Tabelle generieren, in der die Spalten die Ausdrücke sind.

0voto

Daniel Little Punkte 16296

Ich habe keine bessere Lösung als diese gefunden, aber ich glaube nicht, dass sie so ineffizient ist, wie ich zunächst dachte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X