방금 내 애플 리케이션 중 하나에서 NHibernate 2 차 레벨 캐시를 사용하는 것에 대해 생각하기 시작했습니다. 아마도 ASP.net 캐시를 사용하는 NHibernate.Caches.SysCache.SysCacheProvider
을 사용할 것입니다.NHibernate 2 차 레벨 캐시에서 객체 제거
캐시를 활성화해도 문제가 없지만 캐시를 관리하는 방법에 대해 궁금합니다. 지. 프로그래밍 방식으로 캐시에서 특정 엔티티를 제거합니다.
내 응용 프로그램은 일종의 이미지 데이터베이스입니다. 사용자가 백엔드를 통해 이미지를 업로드하고 액세스하여 프론트 엔드에서 볼 수 있습니다.
데이터가 자주 변경되지 않습니다. 그리고 변경된 경우 사용자는 캐시 된 객체를 캐시에서 제거하는 백엔드에서 "clear my cache"라는 버튼을 사용하지 않아도됩니다. 캐시에서.
온라인으로 해답을 찾을 수있는 해결책을 찾았습니다. 모두 캐시 된 개체가 nhibernates second level cache에서 제거되었습니다. 그러나 저를위한 조금 무식한 힘 thats ... 나는 1 명의 사용자가 그 자신의 자료를위한 시렁을 맑게하는 것을 시도했기 때문에 다스 사용자를위한 전체 시렁을 맑게하고 싶지 않다.
그래서 기본적으로 C :의 nhibernates 2 차 캐시에서 캐시 된 db 개체를 선택적으로 제거하려고합니다.
이것이 가능합니까? 캐시 공급 업체에 따라 달라집니다. ASP.net 캐시 공급자와 함께이 작업을 수행 할 수 없다면 다른 내장/공개 소스 제안을 위해 열려 있습니다.
아마 지금은 관련이 없지만 URI 체계가 올바르지 않습니다. 그것은 응용 프로그램이 ImageDb라고하지 않는 한 Users/[Id]/ImageDB/Show –
@the_drow 여야합니다. 아직 대부분 괜찮습니다. ImageDB를/Images 또는 다른 것으로 변경해야합니다. –
@ LukeSchafer : 저는 ImageDb를 썼습니다 OP는 그것을 사용합니다. –