یکی از مواردی که در هر پروژهای به چشم میخورد و وجود دارد، نمایش
دادههای ذخیره شدهی در بانک اطلاعاتی، به کاربر میباشد. احتمالا وب سایتهایی را دیدهاید که تمامی اطلاعات را در یک صفحه بدون هیچ صفحه بندی به
کاربر نشان میدهند که حس خوبی را به کاربر استفاده کننده منتقل نمیکند و
نتیجه منفی هم بر روی سئو خواهد گذاشت ( عدم داشتن Urlهای منحصر بفرد به
ازای هر صفحه).
...
در این مقاله قصد دارم به وسیله Autofac تزریق وابستگیهای Automapper و همچنین Register کردن فایلهای Profile Mapper را توضیح دهم. حتما مقالات مقالات متعدد در رابطه با تزریق وابستگی را که در این سایت وجود دارند، مطالعه کردهاید. در این بخش قصد دارم از Autofac ( بجای StructureMap ) برای تزریق Automapper استفاده کنم. 1. ابتدا ساختار پروژه را بررسی میکنیم. بدین منظور یک پروژه جدید را با عنوان AufacDI ایجاد میکنیم. 2. در این مرحله یک پر ...
بررسی رابطهی One-to-Zero-or-One
زمانیکه نیاز است موجودیت A با هیچ و یا حداکثر یک وهله از موجودیت B در ارتباط باشد، به یک چنین رابطهای One-to-Zero-or-One میگویند. برای اینکه یک چنین ارتباطی را تشکیل دهیم، نیاز است کلید اصلی یک جدول، در جدول مرتبط به آن، هم به عنوان کلید اصلی و هم به عنوان کلید خارجی معرفی شود؛ همانند شکل زیر که در آن CartableId، همزمان به صورت PK و FK تعریف شدهاست که به آن one-to-one association with share ...
در مطلب « بررسی تفصیلی رابطه Many-to-Many در EF Code first » نحوهی مدلسازی رابطهی چند به چند را در EF 6.x بررسی کردیم. یک چنین رابطهای که به همراه مدیریت خودکار join table آن است (جدول BlogPostsJoinTags در شکل زیر)، در EF Core 1.0 RTM پشتیبانی نمیشود.
البته همیشه درخواست کنترل این جدول واسط که کاملا از دیدگاه ORMها (تمام آنها) مخفی است، وجود داشتهاست و قرار است این پشتیبانی توسط مفهوم ویژهای به نام shadow properti ...
برنامههای بزرگ سمت سرور که با تعداد بسیار زیادی کاربر و داده سر و کار دارند، نباید فقط درگیر پاسخگویی سریع و فراهم کردن وب سرویسها برای پلتفرمهای مختلف باشند. این برنامهها باید بتوانند به سادگی رشد کرده، ارتقاء پیدا کنند و به روز شوند. برای ساخت و توسعه این نوع برنامهها، دو مدل معماری وجود دارد: یکی معماری Monolithic و دیگری معماری Microservices. برای شناخت معماری Microservices، ابتدا بایستی با معماری Monolithic آشنا شد. ...
اصل هفتم: Liskove Substitution
Principle "ارث بری باید به
صورتی باشد که زیر نوع را بتوان بجای ابر نوع استفاده کرد" این اصل میگوید اگر قرار است
از ارث بری استفاده شود، نحوهی استفاده باید بدین گونه باشد که اگر یک شیء از کلاس
والد ( Base-Parent-Super type ) داشته باشیم، باید بتوان آن را
با شیء کلاس فرزند ( Sub
Type-Child ) بدون
هیچ گونه تغییری ...
در مطلب « شروع به کار با EF Core 1.0 - قسمت 4 - کار با بانکهای اطلاعاتی از پیش موجود »، نحوهی مهندسی معکوس ساختار جداول و ارتباطات یک بانک اطلاعاتی از پیش موجود را به روش Code First بررسی کردیم. با توجه به رسمی بودن این ابزار، میتوان از آن برای یافتن معادلهای سمت بانک اطلاعاتی، در EF Core نیز استفاده کرد. برای مثال بررسی کرد، درک EF Core از بانک اطلاعاتی طراحی شده چیست و هر چند در آن مطلب عنوان شد که میتوان با پارامتر data-annotations ...
یکی از مهمترین قسمتهای مدل سازی موجودیتها، تعیین نوعهای صحیح ستونها و همچنین تعیین اندازهی مناسبی برای آنها است؛ به همراه تعیین اجباری بودن یا نبودن مقدار دهی آنها.
تعیین اجباری بودن یا نبودن ستونها در EF Core
به صورت پیش فرض در EF Core، هر نوع CLR ایی که نال پذیر باشد، به صورت یک ستون اختیاری در نظر گرفته میشود؛ مانند: string, int?, byte[]
و هر ستونی که نوع CLR آن نال پذیر نباشد، مقدار دهی آن در ...
پس از بررسی نحوهی انجام تنظیمات اولیهی کار با EF Core و همچنین آشنایی با مهاجرتهای آن ، مرحلهی بعد، مرحلهی مدلسازی دادهها است و اولین مرحلهی آن، نحوهی تعیین کلید اصلی جداول است که در این زمینه، EF Core پیشرفتهایی قابل ملاحظهای را نسبت به EF 6.x داشتهاست. در EF 6.x تنها دو حالت کلیدهای اصلی خود افزاینده که توسط بانک اطلاعاتی مدیریت میشوند و یا تولید کلید اصلی در سمت کلاینت و توسط برنامه، پشتیبانی میشوند. در EF Core، مواردی ...
روش کار پیش فرض با EF Core همان روش Code First است. ابتدا کلاسها و روابط بین آنها را تنظیم میکنید. سپس با استفاده از ابزارهای Migrations، بانک اطلاعاتی متناظری تولید خواهد شد. این ابزارها به همراه روشی برای مهندسی معکوس ساختار یک بانک اطلاعاتی از پیش موجود، به روش Code First نیز هستند که در ادامه جزئیات آنرا بررسی خواهیم کرد. بنابراین اگر به دنبال روش کاری Database first با EF Core هستید، در اینجا نیز امکان آن وجود دارد.
ته ...