2008-12-07 68 views
0

我不知道如何用where子句保存對象。我需要它來防止保存日期範圍與其他日期重疊的對象。NHibernate的 - 如何保存對象與where子句

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

我想檢查保存操作中的標準疊加,但我不知道如何。

任何想法?

+0

咦?這裏沒有太多的信息可以繼續。請提供更完整的代碼示例。 – yfeldblum 2008-12-07 08:49:09

+0

我需要這樣的東西:UPDATE TaskEvent SET ... WHERE ID = @ID {如何在這裏添加一些條件} – dariol 2008-12-07 15:37:05

回答

1

您可以使用HQL即席更新查詢

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

或更NHibernate的一種方式做...獲取所需TaskEvents(where子句),更新它們的屬性,並提交事務。

2

您需要在代碼中找出哪些對象需要保存,然後保存這些對象。這是業務邏輯,不應該推入持久性操作。國際海事組織,即使NH可以支持。

0

一種方法是確定哪些TaskEvent對象不希望保存在代碼中,並將它們從ISession中驅逐出去,以便它們不會被保留。