0

where句でオブジェクトを保存する方法がわかりません。日付の範囲が他のオブジェクトと重複するオブジェクトを保存しないようにするために必要です。

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

保存操作で条件の重複をチェックしたいのですが、方法がわかりません。

何か案は?

4

3 に答える 3

2

どのオブジェクトを保存する必要があるかをコードで把握し、それらを保存する必要があります。これはビジネス ロジックであり、永続化操作にプッシュするべきではありません。NHがそれをサポートできたとしても、IMO。

于 2008-12-07T15:31:05.300 に答える
1

アドホック更新クエリに HQL を使用できます

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

または、より NHibernate のような方法で行うには...必要な TaskEvents (where 句) を取得し、それらのプロパティを更新して、トランザクションをコミットします。

于 2010-01-18T16:04:38.783 に答える
0

1 つの方法は、コードに保存したくない TaskEvent オブジェクトを再定義し、それらを ISession から削除して永続化しないようにすることです。

于 2010-01-18T16:09:03.037 に答える