NHibernate的 - 如何保存对象与where子句
-
19-08-2019 - |
题
我不知道如何保存与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的驱逐他们,使他们不会被保留。
不隶属于 StackOverflow