我不知道如何保存与where子句的对象。我需要它防止保存对象的日期上重叠其他的范围。

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

我想在存储操作中的标准来检查overlaping,但我不知道怎么办。

任何想法?

有帮助吗?

解决方案

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

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

或者在更NHibernate的种方式来操作获取所需TaskEvents(where子句),更新自己的特性,并且提交事务。

其他提示

您需要哪些对象需要保存代码搞清楚,然后保存这些。这是业务逻辑,不应该推入持久化操作。 IMO,即使NH可以支持。

一个办法是retermine这TaskEvent对象,你不想在代码中保存并从ISession的驱逐他们,使他们不会被保留。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top