‫۱۴ سال و ۷ ماه قبل، پنجشنبه ۵ فروردین ۱۳۸۹، ساعت ۲۱:۳۷
تشخیص روابط بین جداول یعنی همان mapping خودکار،‌ یعنی همان نحوه‌ی تعریف کلاس‌های شما و برقراری روابطی که در طی چند قسمت مثال زده شد. سیستم پیش فرض NHibernate بر اساس اول طراحی کلاس‌ها و بعد ایجاد ارتباط با دیتابیس است که اینجا به صورت خودکار صورت می‌گیرد.
برای مثال در قسمت هشتم یک سیستم many-to-many مثال زده شده است به همراه کوئری‌هایی از نوع Linq . اینجا فقط تعریف کلاس‌هایی که بیانگر روابط many-to-many باشند مهم است؛ نحوه‌ی نگاشت خودکار آن‌ها به دیتابیس کار Fluent NHibernate است. (از این نوع مثال‌ها در هر قسمت پیاده سازی شده)
جزئیات ریز نحوه‌ی نگاشت خودکار با مطالعه‌ی سورس کتابخانه NHibernate و مشتقات آن قابل درک است (برای علاقمندان).
ضمنا فرقی نمی‌کند از Linq قسمت پنجم استفاده کنید یا هر روش موجود دیگری برای کوئری گرفتن (زمانیکه Linq هست و نگارش‌های جدید آن برای NHibernate پیشرفت زیادی داشته، چرا روش‌های دیگر؟).
‫۱۴ سال و ۸ ماه قبل، یکشنبه ۹ اسفند ۱۳۸۸، ساعت ۱۸:۰۴
سلام
نحوه پیاده سازی کامپوزیت کی در FHN:
http://devlicio.us/blogs/derik_whittaker/archive/2009/01/16/using-fluentnhibernate-to-map-composite-keys-for-a-table.aspx
و اینکه چرا کامپوزیت کی خوب نیست اساسا:
http://codebetter.com/blogs/jeremy.miller/archive/2007/02/01/Composite-keys-are-evil.aspx
‫۱۳ سال و ۸ ماه قبل، سه‌شنبه ۱۲ بهمن ۱۳۸۹، ساعت ۱۸:۳۰
به NHibernateContext در NH 3.0‌ نیازی نیست. آن‌را از مثال‌ها حذف کنید. فقط بجای Linq شما Query خواهید داشت (یک تغییر نام مختصر به همراه ساده‌ سازی نحوه استفاده).
‫۱۳ سال و ۸ ماه قبل، سه‌شنبه ۱۲ بهمن ۱۳۸۹، ساعت ۱۵:۵۸
در کامنت‌های فوق توضیح دادم. این توضیحات مربوط به نگارش 2 بود. الان نگارش 3 را که دریافت کنید LINQ با آن یکپارچه است و نیازی به دریافت پروایدر کمکی نیست و پروایدر قدیمی هم منسوخ شده و دیگر ادامه نخواهد یافت.
‫۱۳ سال و ۱۰ ماه قبل، یکشنبه ۵ دی ۱۳۸۹، ساعت ۰۲:۴۵
NH 3.0 پشتیبانی یکپارچه‌ای را از LINQ ارائه می‌دهد و دیگر نیازی نیست مانند نگارش 2 آن پروایدر مخصوصی را جداگانه دریافت کرد. آن پروایدر قدیمی هم به نظر کنار گذاشته شده و از یک کتابخانه‌ی پخته‌تر به نام Remotion Linq Library استفاده گردیده است (+).
در این نگارش برای دسترسی به IQueryable interface می‌توان از متد session.Query استفاده کرد (بجای session.Linq نگارش قبلی).
‫۱۴ سال و ۸ ماه قبل، پنجشنبه ۱۳ اسفند ۱۳۸۸، ساعت ۱۸:۰۴
در مورد LINQ to NHibernate در نگارش‌های اخیر آن کمی تغییر وجود داشته که نیاز است مطلب زیر را مطالعه بفرمائید:
http://blogs.imeta.co.uk/sstrong/archive/2009/12/16/824.aspx
‫۱۳ سال و ۱۰ ماه قبل، شنبه ۴ دی ۱۳۸۹، ساعت ۲۰:۱۵
NH 3.0 نیازی به فایل‌های کمکی LINQ قدیمی ندارد و از یک کتابخانه‌ی دیگر و پیشرفته‌تر به صورت یکپارچه استفاده می‌کند. بنابراین نیازی نیست که از فایل LINQ موجود در (+) استفاده کرد. سایر موارد آن برای NH 3.0 به روز شده‌اند و قابل استفاده است.
‫۱۳ سال و ۱۰ ماه قبل، شنبه ۴ دی ۱۳۸۹، ساعت ۱۷:۵۵
روابط یک به چند و چند به چند رو در طی مقالات این سری توضیح دادم. باید وقت بگذارید این‌ها را مطالعه کنید (مواردی مانند one-to-many و many-to-many و غیره که ذکر شده به همین دلیل است).
یا اینکه می‌تونید از ابزار استفاده کنید: NHibernate Mapping Generator
‫۱۳ سال و ۱۱ ماه قبل، دوشنبه ۲۴ آبان ۱۳۸۹، ساعت ۱۲:۲۵
سلام،
فقط در یک حالت این مورد ممکن است:
- SQLite مد کار کردن در حالت تشکیل دیتابیس در حافظه هم دارد. این مورد برای انجام آزمایشات واحد بسیار مرسوم و مفید است چون هم سریع است و هم پس از پایان کار اثری از رکوردها باقی نخواهد ماند.
بنابراین بررسی کنید که بانک اطلاعاتی SQLite را در چه حالتی آغاز می‌کنید.
‫۱۳ سال و ۹ ماه قبل، دوشنبه ۲۰ دی ۱۳۸۹، ساعت ۲۱:۴۰
شاید جایی رو از قلم انداخته‌اید (solution کامل شما باید برای دیباگ موجود باشد).
سورس کامل قابل دریافت این موارد در پایان قسمت چهارم ارائه شده. به آن مراجعه کنید.