Domanda

Ho il seguente oggetto di dominio:

public class Data
{
    public virtual int ID { get; set; }
    public virtual DateTime TimeStamp { get; set; }
    public virtual int Value { get; set; }

    public virtual Channel Channel { get; set; }       

}  

Sto usando repository da Rhino.Commons. Ho bisogno di selezionare somma dei valori per alcuni canali per un certo periodo. Questi valori devono essere ordinate per ID del canale. Io uso la seguente query (nel metodo repository):

var criteria = DetachedCriteria.For<LiveData>()
            .Add(Restrictions.Le("TimeStamp", startDate))
            .Add(Restrictions.Ge("TimeStamp", endDate))
            .Add(Restrictions.InG<Channel>("Channel", channels))
            .SetProjection(Projections.Sum("Value"))
            .SetProjection(Projections.GroupProperty("Channel"));

long[] result = ReportAll<long>(criteria, Projections.ProjectionList(), Order.Asc("Channel"));

E ricevo errore alla ultima riga perché questa query non restituisce un elenco di numeri lunghi. Esso restituisce un elenco di oggetti di questo tipo (che funziona con esso):

public class ResultValue
{
    public virtual Channel Channel { get; set;}
    public virtual int Value { get; set; }
    public ResultValue()
    {            
    }

    public ResultValue(int value, Channel channel)
    {
        this.Value = value;
        this.Channel = channel;
    }
}

Questo è perché ho aggiunto Projections.GroupProperty ( "Channel") proiezione criteri per fare un raggruppamento. C'è un modo per rimuovere una delle proiezioni (Projections.GroupProperty ( "Channel") dal mio campione) dal gruppo di risultati o per aggiungere un raggruppamento senza proiezione?

È stato utile?

Soluzione

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top