خطای ProxyFactory حین استفاده از NHibernate

بعضی اوقات در هنگام کار با NHibernate استثناء زیر صادر می‌شود:

Could not load type 'NHibernate.Bytecode.ProxyFactoryFactoryNotConfiguredException' from assembly 'NHibernate, Version=3.3.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4'.
این استثناء زمانی رخ می‌دهد که شما از کتابخانه NHibernate Validator به همراه NHibernate استفاده می‌کنید.
برای رفع این مشکل ابتدا سورس این کتابخانه را از آدرس زیر دریافت نمایید:

پس از دریافت سورس پروژه آن را از حالت فشرده خارج کرده و سپس فایل پروژه را در ویژوال استودیو باز کرده و در صورت مغایرت نسخه‌ی کتابخانه NHibernate با نسخه‌ی که از آن استفاده می‌کنید، ارجاعاتی را که به اسمبلی NHibernate داده شده است را پیدا کرده و با نسخه مورد نظر جایگزین نمایید. (در زمان نگارش این مطلب آخرین نسخه، 3.3 می‌باشد)
سپس در پروژه NHibernate.Validator و در پوشه Util فایل NHibernateHelper.cs را بازکرده و متود IsProxyFactoryConfigurated را مطابق زیر تغییر دهید:
public static bool IsProxyFactoryConfigurated()
{
    try
    {
        var f = NHibernate.Cfg.Environment.BytecodeProvider.ProxyFactoryFactory;
        return f != null; //Instead of "return true;"
    }
    catch (UnableToLoadProxyFactoryFactoryException)
    {
        return false;
    }
}
حال پروژه را در ویژوال استودیو Build کرده و فایل NHibernate.Validator.dll تولید شده را با نمونه مشابه آن در پروژه‌تان تعویض نمایید.
 

Mapping-by-code NH 3.2

یکی از ویژگی‌ها جدید NHibernate 3.2، اضافه کردن امکان تعریف نگاشت کلاس‌ها از طریق کد یا mpping-by-code می‌باشد. این کار تا قبل از نگارش 3.2 از طریق تعریف توسط فایل‌های XML صورت می‌گرفت.
متأسفانه هنوز مستندات و مثال‌های چندانی در این مورد در دسترس نمی‌باشد.
آقای نصیری در این پست سایتی را معرفی کردند که در آن توضیحاتی در مورد نگاشت کلاس از طریق کد داده شده‌است.

اما جای یک مثال واقعی و قابل اجرا کم است که آن را هم خدمتتان معرفی می‌کنم:
یک پروژه متن باز بر روی سایت CodePlex قرار دارد که در این پروژه از این ویژگی mappin-by-code بعلاوه موارد دیگر از قبیل انواع الگوها طراحی (Repository, UnitOfWork, ...) استفاده شده است که از آدرس زیر قابل دسترس می‌باشد.