بایگانی برچسب: NHibernate

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

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

‫NHibernate Session Management در Winform و WCF

بحث NHibernate Session Management در برنامه‌های وب اصلاً کار سختی نیست. روتین‌ها و نمونه‌های زیادی هم در مورد آن وجود دارد. اما انجام همین بحث در Winform و WCF کمی کار می‌برد. یکی از بهترین روش‌ها برای مدیریت Session در NHibernate استفاده از الگوی Unit Of Work است. تطبیق این الگو با مدل کاری وب …

‫راه‌هایی برای دینامیک کردن entityهای NHibernate

فرض کنید تعدادی کلاس سی‌شارپ را با استفاده از Reflection.Emit در زمان اجرا (Runtime) ساخته‌اید. این یعنی کلاس‌ها دینامیک بوده و هیچ سورس کدی وجود ندارد، بلکه همه چیز فقط در حافظه وجود دارد یا نهایتاً فایل dll اسمبلی آن را بتوان در دیسک ذخیره کرد. حال می‌خواهیم برای این کلاس‌های دینامیک HBM یا همان …

‫استفاده از Fluent NHibernate

از همان اولین باری که اسم Fluent NHibernate را شنیدم فکر کردم چیز جالبی نیست. نمی‌دانم چرا، شاید به خاطر آن که فکر می‌کردم انعطاف‌پذیری را فدای راحتی کرده یا شاید هم به خاطر غرور low level. طی مدت اخیر که به دنبال راهی برای dynamic کردن entityهای NHibernate بودم خود به خود مجبور شدم …

‫استفاده بهینه از Lazy Loading

برای Lazy Loading در NHibernate روال زیر را انجام داده بودم. lazy را برای همه mappingها true کرده بودم. در web.config هم همینطور. سپس هر جا که lazy مشکل پیدا می‌کرد و خطای LazyInitializationException اتفاق می‌افتاد، آن association یا collection را با استفاده از کلاس NHibernateUtil.Initialize پیش load می‌کردم تا مشکل حل شود. این راه …

‫‫‫رابطه یک به یک در NHibernate و Castle ActiveRecord

بین دو Entity می‌توان رابطه یک به یک برقرار کرد. یعنی به ازای یک instance (رکورد) از یکی، فقط و فقط یک instance (رکورد) در دیگری وجود داشته باشد. هر چند که NH این نوع رابطه را نشانه طراحی بد می‌داند، اما دو راه برای پیاده‌سازی آن مهیا کرده است: ۱- روش primary key associations: …

Unique foreign key associations in Castle ActiveRecord

NHibernate have 2 varieties of one-to-one association, primary key associations and unique foreign key associations. Castle ActiveRecord documentation describes just first varity, primary key associations. But how about second variety, unique foreign key associations? Well, it can be implemented as follow. Please notice sample:     [ActiveRecord(Lazy = true)]    public class User : ActiveRecordBase    {        [PrimaryKey]        …

‫پیغام خطاهای معروف NHibernate – قسمت اول

یکی از معروف‌ترین خطاهای NHibernate خطای زیر است: No row with the given identifier exists[EntityName#rec_id] به جای EntityName نام کامل entity و به جای ‎#rec_id شماره رکورد قرار می‌گیرد. این خطا همان طور که پیغامش اشاره می‌کند وقتی به وقوع می‌پیوندد که NH در دیتابیس به دنبال رکورد خاصی می‌گشته ولی آن رکورد در دیتابیس …

‫مشکل Stack Overflow در NHibernate

به تجربه دریافته‌ام هر وقت که در NHibernate/Castle AR بدون هیچ دلیل واضحی مشکل Stack Overflow به وجود می‌آید، باید مکانیزم Dirty detection را بررسی کرد. در این مکانیزم، NH خودش objectهایی را که dirty شده‌اند را پیدا کرده و آنها را update می‌کند. بعضی وقت‌ها پیش می‌آید که update شدن یک آبجکت dirty باعث …

بی‌اطمینانی به مایکروسافت

سال‌های سال است که با محصولات مایکروسافت کار می‌کنم. دقیقاً از داس ۵ به این طرف. البته هیچ وقت هم با این موضوع مشکل خاصی نداشتم. هر وقت مایکروسافت داس را کنار می‌گذاشت و ویندوز را رو می‌کرد ما هم سراغ ویندوز می‌رفتیم، هر وقت ASP Classic را دور می‌انداخت ما هم همین کار را …