Frage

Ich weiß nicht, wie mit where-Klausel Objekt zu speichern. Ich brauche es Aufgabe mit Datumsbereich auf andere Überschneidungen zu verhindern, zu speichern.

public class TaskEvent
{
    public DateTime StartDate {get;set;}
    public DateTime EndDate {get;set;}
}

Ich mag Kriterien im Sparbetrieb überprüfen overlaping aber ich weiß nicht, wie.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Sie können HQL verwenden für Ad-hoc-Aktualisierung Abfragen

session.CreateQuery("UPDATE TaskEvent SET ... WHERE ID = :ID and ...")
.SetInt32("ID", ID)
//.SetDateTime("", )
//.SetDateTime("", )
.ExecuteUpdate();

oder in einer NHibernate Art und Weise zu tun ... holt die erforderlichen TaskEvents (where-Klausel), aktualisieren ihre Eigenschaften und die Transaktion verpflichten.

Andere Tipps

Sie müssen in Code, um herauszufinden, welche brauchen Speichern von Objekten, dann diejenigen speichern. Das ist Business-Logik und soll nicht in Persistenz Operationen verschoben werden. IMO, auch wenn NH dass unterstützen könnte.

Ein Ansatz wäre, retermine die TaskEvent Objekte, die Sie wollen nicht in Code speichern und sie von der ISession zu vertreiben, so dass sie nicht beibehalten werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top