Próbuję zaimplementować repozytorium Soft-deletable. Zwykle można to łatwo zrobić za pomocą detektora Usuń zdarzenia. Aby odfiltrować usunięte elementy, mogę dodać atrybut Gdzie do mapowania klas. Muszę jednak wdrożyć jeszcze dwie metody w repozytorium dla tego obiektu: Przywróć i Oczyść. Funkcja przywracania "przywróci" encje, a funkcja "Usuń" je usunie. Oznacza to, że nie mogę użyć atrybutu Where (ponieważ blokuje on jednostki z miękkim usunięciem do dowolnego dostępu).Filtry NHibernate nie działają z Session.Get
Próbowałem zamiast tego używać filtrów . Mogę utworzyć filtr i włączyć lub wyłączyć go w sesji, aby osiągnąć ten sam wynik. Ale problem polega na tym, że filtry nie mają żadnego wpływu na metodę Session.Get (mają wpływ tylko na dostęp oparty na ICriteria).
Jakieś pomysły na rozwiązanie tego problemu?
Dzięki
Czy kiedykolwiek znalazłeś rozwiązanie tego problemu? – kmoo01
Nie. Filtry nie działają w Get. Wpływają tylko na kryteria. Musiałem zaimplementować inne podejście do repozytorium bazowego tylko dla Get i pozwolić filtrowi poradzić sobie z innymi przypadkami użycia. – Khash