NHibernate-如何使用where子句保存对象

NHibernate-如何使用where子句保存对象,nhibernate,save,where,Nhibernate,Save,Where,我不知道如何用where子句保存对象。我需要它来防止保存日期范围与其他对象重叠的对象 public class TaskEvent { public DateTime StartDate {get;set;} public DateTime EndDate {get;set;} } 我想检查保存操作中的条件重叠,但不知道如何检查 有什么想法吗?您需要在代码中找出哪些对象需要保存,然后保存这些对象。这是业务逻辑,不应该被推到持久性操作中。国际海事组织,即使NH可以支持 您需要在代

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

public class TaskEvent
{
    public DateTime StartDate {get;set;}
    public DateTime EndDate {get;set;}
}
我想检查保存操作中的条件重叠,但不知道如何检查


有什么想法吗?

您需要在代码中找出哪些对象需要保存,然后保存这些对象。这是业务逻辑,不应该被推到持久性操作中。国际海事组织,即使NH可以支持

您需要在代码中找出哪些对象需要保存,然后保存这些对象。这是业务逻辑,不应该被推到持久性操作中。国际海事组织,即使NH可以支持

您可以使用HQL进行临时更新查询

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

或者以一种更为NHibernate的方式…获取所需的TaskEvents(where子句),更新其属性,并提交事务。

您可以使用HQL进行临时更新查询

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

或者以一种更为NHibernate的方式…获取所需的TaskEvents(where子句),更新其属性,并提交事务。

一种方法是重新终止不希望保存在代码中的TaskEvent对象,并将其从ISession中逐出,以便它们不会被持久化

一种方法是重新终止哪些TaskEvent对象不希望保存在代码中,并将它们从ISession中逐出,这样它们就不会被持久化

嗯?这里没有太多的信息可以提供。请给出一个更完整的代码示例。我需要这样的东西:更新任务事件集。。。其中ID=@ID{如何在这里添加一些条件}嗯?这里没有太多的信息可以提供。请给出一个更完整的代码示例。我需要这样的东西:更新任务事件集。。。其中ID=@ID{如何在这里添加一些条件}是的,我理解,但这不是线索。我需要知道当我调用session.Update()时,如何将条件之类的东西放到何处。例如:更新任务事件集。。。其中ID=@ID{如何在这里添加一些条件}是的,我理解,但这不是线索。我需要知道当我调用session.Update()时,如何将条件之类的东西放到何处。例如:更新任务事件集。。。其中ID=@ID{如何在这里添加一些条件}