‫NHibernate session management در محیط‌های مختلف

مهم‌ترین مسئله‌ای که در Session management در NHibernate وجود دارد، مسئله نگهداری session است. به طور معمول سعی می‌شود برای انجام یک کار فقط یک session باز شود نه بیشتر. اگر طی انجام همان کار مجدداً نیاز به session شد از همان session قبلی استفاده می‌شود نه این که یک session جدید open شود.

این کار در وب خیلی راحت است. session instance مورد نظر در HttpContext قرار داده می‌شود. در مورد ویندوز و WCF هم کار چندان سختی نیست. چون از Thread برای نگهداری session استفاده می‌شود. اما موقعیت‌هایی وجود دارد که می‌خواهیم به طور هم زمان در دو محیط از یک Session Factory و Session استفاده نماییم. مثلاً هم وب را داریم و هم یک سرویس WCF را.

این طور وقت‌ها می‌توان یک SessionContext سفارشی ساده ساخت که هم session را در HttpContext نگاه داشت و هم در جای دیگری که در محیط مورد نظر معنی دار است. اصل این راه حل در اینجا توضیح داده شده.

Comments

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *