بسم الله الرحمن الرحیم
فرض کنید که یک جدول برای مشتریان(Customers) و یکی برای درخواست های مشتری ها (Orders) میخواهید.جدول مشتری ها نیاز به ستون های [Id] [Name] [City] [BrithDay] دارد.
و جدول Orders نیاز به ستون های [Id][CustomerId][OrderDate] دارد.
رابطه این دو جدول به صورت One-To-Many است یعنی یک Customer می تواند تعداد مختلفی Order داشته باشد ولی Order فقط می تواند یک Coustomer داشته باشد.
برای اینکه این رابطه را با استفاده از EF-core ایجاد کنیم باید از Navigation property استفاده کنیم.
در جدول Customer که می تواند تعداد زیادی order داشته باشد یک کالکشن از نوع Order اضافه می کنیم مانند کد زیر
و برای order باید یک ستون به اسم CoustomerId بسازیم که در واقع foreign key برای وصل کردن این دو جدول به هم است.ولی برای اینکه به نرم افزار بفهمانیم CustomerId به کدام جدول ربط دارد باید یک Navigation Property به صورت زیر نیز اضافه کنیم.
متغیر Customer که از جنس Customer است فقط برای این است که نحوه اتصال دو جدول را نشان دهد.
اگر بخواهید برای مقادیر ورودی به دیتا بیس یکسری محدویت ها وضع کنید باید از اتربیوت DeniedValues استفاده کنید.
مثلا فرض کنید که نمی خواهید کسی عبارت "trump"را به عنوان نام وارد کند.برای اینکار باید به روش زیر عمل کنید.
نکته : این محدویت ها در سطح برنامه اتفاق می افتد نه در سطح دیتا بیس.یعنی برای کسی که به صورت مستقیم با دیتابیس در ارتباط است محدودیتی نیست .
مثلا اگر کاربر سفارشی را ثبت کرد به صورت پیشفرض از تاریخ سیستم برای تاریخ ثبت سفارش استفاده شود.
اسان ترین روش این است که هنگام ساخت مانند مثال زیر از عبارت DateTime.Now استفاده کنید.
اما راه بهتر اضافه کردن این مقدار پیشفرض در سطح دیتا بیس است .برای اینکار باید تغییراتی در فایل کانتکس خود که معمولا در پوشه Data است ایجاد کنید .
برای مطالعه بیشتر: Entity Properties
شبکه های اجتماعی :
یوتیوب https://www.youtube.com/@BA_HOSSIEN