where句でオブジェクトを保存する方法がわかりません。日付の範囲が他のオブジェクトと重複するオブジェクトを保存しないようにするために必要です。
public class TaskEvent
{
public DateTime StartDate {get;set;}
public DateTime EndDate {get;set;}
}
保存操作で条件の重複をチェックしたいのですが、方法がわかりません。
何か案は?
where句でオブジェクトを保存する方法がわかりません。日付の範囲が他のオブジェクトと重複するオブジェクトを保存しないようにするために必要です。
public class TaskEvent
{
public DateTime StartDate {get;set;}
public DateTime EndDate {get;set;}
}
保存操作で条件の重複をチェックしたいのですが、方法がわかりません。
何か案は?
どのオブジェクトを保存する必要があるかをコードで把握し、それらを保存する必要があります。これはビジネス ロジックであり、永続化操作にプッシュするべきではありません。NHがそれをサポートできたとしても、IMO。
アドホック更新クエリに HQL を使用できます
session.CreateQuery("UPDATE TaskEvent SET ... WHERE ID = :ID and ...")
.SetInt32("ID", ID)
//.SetDateTime("", )
//.SetDateTime("", )
.ExecuteUpdate();
または、より NHibernate のような方法で行うには...必要な TaskEvents (where 句) を取得し、それらのプロパティを更新して、トランザクションをコミットします。
1 つの方法は、コードに保存したくない TaskEvent オブジェクトを再定義し、それらを ISession から削除して永続化しないようにすることです。