To musi być proste pytanie. Biorąc pod uwagę kryteria, w jaki sposób usuwa się podmioty spełniające kryteria?Jak można usunąć obiekty NHibernate za pomocą kryteriów?
Uzasadnieniem:
HQL i NH kryteria są NHibernate specyficzne konstrukcje i jako takie są one side DAL szczegóły implementacji serwera. Nie chcę, aby "wyciekły" do klienta. Tak więc, nasza strona klienta udostępnia wyrażenia LINQ dla serwera do przetworzenia. Do tej pory żądania, w których wybierały żądania i LINQ do NHibernate, działały z nimi dobrze.
Istnieje jednak konieczność wdrożenia operacji usuwania partii. Jak zwykle strona klienta udostępnia wyrażenie LINQ, a serwer usuwa elementy spełniające wyrażenie. Niestety, LINQ do NHibernate nie ma tutaj żadnej pomocy. Jedyne, co może zrobić, to przetłumaczyć dane wyrażenie LINQ na kryteria NHibernate.
W każdym razie, to jest historia. Chciałbym podkreślić, że strona klienta w ogóle nie jest świadoma NHibernate i lubię ją pozostać w ten sposób.
P.S.
Używam NH 2.1
Nie podoba mi się ta metoda, mimo że pracuję z dużą liczbą obiektów, ponieważ wymaga ona pobrania wszystkich elementów z bazy danych przed ich usunięciem. –
To prawda, nie musisz używać HQL do wydania instrukcji "DELETE FROM WHERE"? – DanB
Faceci, nie mówisz poważnie. Musi istnieć lepszy sposób! – mark