نگاشت خودکار مجموعهها در Fluent NHibernate ساده است و نیاز به تنظیم خاصی ندارد. برای مثال IList به صورت خودکار به Bag ترجمه میشود و الی آخر.البته شاید سؤال بپرسید که این Bag از کجا آمده؟ کلا 6 نوع مجموعه در NHibernate پشتیبانی میشوند که شامل Array، Primitive-Array ، Bag ، Set ، List و Map هستند؛ این اسامی هم جهت حفظ سازگاری با جاوا تغییر نکردهاند و گرنه معادلهای آنها در دات نت به این شرح هستند:Bag=IListSet=Iesi.Collections.ISetList= ...
در مورد طراحی یک برنامه "فرم ساز" در مطلب قبلی بحث شد ... حدودا سه سال قبل اینکار را برای شرکتی انجام دادم. یک برنامه درخواست خدمات نوشته شده با ASP.NET که مدیران برنامه میتوانستند برای آن فرم طراحی کنند؛ فرم درخواست پرینت، درخواست نصب نرم افزار، درخواست وام، درخواست پیک، درخواست آژانس و ... فرمهایی که تمامی نداشتند! آن زمان برای حل این مساله از فیلدهای XML استفاده کردم.فیلدهای XML قابلیت نه چندان جدیدی هستند که از SQL Server 2005 به بعد ...
یکی از قابلیتهای جالب NHibernate امکان تعریف فیلدها به صورت پویا هستند. به این معنا که زیرساخت طراحی یک برنامه "فرم ساز" هم اکنون در اختیار شما است! سیستمی که امکان افزودن فیلدهای سفارشی را دارا است که توسط برنامه نویس در زمان طراحی اولیه آن ایجاد نشدهاند. در ادامه نحوهی تعریف و استفاده از این قابلیت را توسط Fluent NHibernate بررسی خواهیم کرد.در اینجا کلاسی که قرار است توانایی افزودن فیلدهای سفارشی را داشته باشد به صورت زیر تعریف میشود ...
Dialects در NHibernate کلاسهایی هستند جهت معرفی تعاریف ویژگیهای خاص بانکهای اطلاعاتی مختلف؛ مثلا SQL Server 2008 چه ویژگیهای جدیدی دارد یا SQL Server CE 4.0 که جدیدا ارائه شده، امکان تعریف offset را در کوئریهای خود میسر کرده (چیزی که قرار است در نگارش بعدی SQL Server اصلی(!) در دسترس باشد) ، اکنون چگونه میتوان این ویژگی را فعال کرد (باید Dialect آن به روز شود و ... همین). یک سری Dialect از پیش تعریف شده هم برای اکثر بانکهای اطلاعات ...
جهت تکمیل مطلب قبل (+)، میتوان به ازای تمام توابع SQL موجود و همچنین تمام حالتهای اعمال محدودیت مانند مساوی، بزرگتر، کوچکتر و امثال آن، extension method نوشت. یا اینکه یک متد داشت که بتوان پارامترهای آن را تنظیم کرد. به همین جهت کتابخانه زیر را تهیه کردهام که از آدرس زیر قابل دریافت است:QueryOverSqlFuncsExtsنحوه استفاده:ابتدا باید به NH معرفی شود (یکبار در ابتدای کار برنامه):RegistrExt.RegistrMyQueryOverExts();سپس استفاده از آن به سادگی ...
در NHibernate چندین و چند روش، جهت تهیه کوئریها وجود دارد که QueryOver یکی از آنها است (+). QueryOver نسبت به LINQ to NH سازگاری بهتری با ساز و کار درونی NHibernate دارد؛ برای مثال امکان یکپارچگی آن با سطح دوم کش. هر چند ظاهر QueryOver با LINQ یکی است، اما در عمل متفاوتند و راه و روش خاص خودش را طلب میکند. برای مثال در LINQ to NH میتواند نوشت x.Property.Contains اما در QueryOver متدی به نام contains قابل استفاده نیست (هر چند در Intelli ...
سطح اول کش در NHibernate در یک تراکنش معنا پیدا میکند (+)؛ اما نتایج حاصل از اعمال سطح دوم (+) آن، در اختیار تمام تراکنشهای جاری برنامه خواهند بود. در ادامه قصد داریم نحوه فعال سازی سطح دوم کش NHibernate را توسط Fluent NHibernate بررسی کنیم.الف) دریافت کش پروایدربرای این منظور به صفحه اصلی آن در سایت سورس فورج مراجعه نمائید(+). اگر به علت تحریمها امکان دریافت فایلهای مرتبط را نداشتید از این برنامه استفاده کنید(+). پس از دریافت، میخواه ...
در این عنوان، NH همان NHibernate است و FHN همان Fluent NHibernateنگارش آزمایشی NH 3.2 هم اکنون در دسترس است و یکی از مهمترین مباحثی را که پوشش داده، جایگزین کردن فایلهای XML تهیه نگاشتها با کدنویسی است. دقیقا چیزی شبیه به Fluent NHibernate البته اینبار از یک کتابخانه دیگر به نام ConfOrm کدها یکی شدهاند.باید توجه داشت که نگارش 3.2 خاصیت AutoMapping مربوط به FHN را پشتیبانی نمیکند (یا هنوز در این نگارش به این حد نرسیده است)، بنابراین نمی ...
اگر علاقمند باشید که به آخرین نگارشهای Fluent NHibernate دسترسی داشته باشید، مکان اصلی نگهداری و Build آنها در سایت teamcity.codebetter.com میباشد. ثبت نام در آن رایگان است و سپس در آدرس ذیل میتوانید آخرین Build ها را مشاهده و دریافت کنید:Fluent NHibernate v1.x (NH3.x)برای نمونه:fluentnhibernate-NH3.1-source-1.2.0.705.zipfluentnhibernate-NH3.1-binary-1.2.0.705.zipfluentnhibernate-docs-1.2.0.705.zip