NHibernate Criteria API, Projektionen und Ergebnis
-
23-08-2019 - |
Frage
Ich habe folgendes Domänenobjekt:
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; }
}
Ich verwende Repositorys von Rhino.Commons. Ich brauche für wenige Kanäle für einen gewissen Zeitraum Summe der Werte auszuwählen. Diese Werte sollten von Kanal-ID bestellt werden. Ich verwende die folgende Abfrage (in Repository-Methode):
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"));
Und ich erhalte Fehler in der letzten Zeile, da diese Abfrage keine Liste der langen Zahlen zurückzugibt. Es gibt eine Liste von Objekten wie folgt aus (es funktioniert mit ihm):
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;
}
}
Das ist, weil ich habe Projections.GroupProperty ( „Channel“) Projektion Kriterien hinzugefügt, um eine Gruppierung zu tun. Gibt es eine Möglichkeit eine von Vorsprüngen (Projections.GroupProperty ( „Channel“) von meiner Probe) zu entfernen resultset oder eine Gruppierung ohne Projektion hinzufügen?
Lösung
Dies ist ein anhängige NHibernate Ausgabe .