2008-12-07 2 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 (где положения), обновить свои свойства, и совершить сделку ,

2

Вам нужно выяснить, в коде, какие объекты нужно сохранить, а затем сохранить. Это бизнес-логика и не следует вводить в операции сохранения. ИМО, даже если бы NH поддержал это.

0

Один из подходов состоит в том, чтобы переустановить объекты TaskEvent, которые вы не хотите сохранять в коде, и выселять их из ISession, чтобы они не сохранялись.

Смежные вопросы