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

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

طی مدت اخیر که به دنبال راهی برای dynamic کردن entityهای NHibernate بودم خود به خود مجبور شدم مروری به همه راه‌حل‌های mapping از جمله Fluent NHibernate داشته باشم.

طی این مرور بودم که فهمیدم FNH آنقدر هم که فکر می‌کردم بد نیست، اولاً به خاطر این که Auto Mapping دارد. دوم به خاطر این که Fluent mapping آن سادگی و خوانایی نسبتاً قابل قبولی نسبت به HBM دارد.

FNH سه راه برای mapping دارد: Auto Mapping، Fluent Mapping و Traditional Mapping.‏ Auto mapping کار mapping را در صورتی که نیازمندی‌هایتان با پیش‌فرض‌های FNH خیلی تفاوت نداشته شد به خوبی راه می‌اندازد. در این روش شما فقط یک class ساده سی‌شارپی را به FNH معرفی می‌کنید بدون آن که از attribute یا lambda expression برای بیان تناظر بین کلاس و جدول استفاده کرده باشید. FNH خودش یک mapping پیش فرض در نظر خواهد گرفت. برای فهم سادگی موضوع حتماً نگاهی به نمونه‌های اینجا بیندازید.