سئو

Primary key Attribute – تعیین کلید اصلی برای جداول در EF Core

سلام ، آرزو ابراهیمی هستم مدرس فیلم اموزش asp.net core و با یک مقاله آموزشی دیگر از فصل اموزش Entity Framework core در خدمت شما دوستان عزیز هستم.

سرفصل‌های پست

Primary key یا کلید اصلی چیست ؟

قبل اینکه بریم سراغ مشخص کردن کلید اصلی جدول دیتابیس می‌خواهیم با مفهوم کلید اصلی یا Primary key آشنا شویم.

کلید اصلی به زبان ساده به آن ویژگی یا صفتی از موجودیت گفته می‌شود که منحصر فرد است. به عنوان مثال اگر هر ایرانی را به عنوان یک موجودیت در نظر بگیریم کدملی را می‌توانیم به عنوان کلید اصلی برای این موجودیت در نظر بگیریم چرا که هر ایرانی کدملی منحصر به فرد خود را دارد و هیچ دو ایرانی پیدا نمی‌شود که کدملی آنها یکسان باشد.

قرار دادن کلید اصلی برای یک Table در روش Code First در EF Core

جهت قرار دادن کلید اصلی برای جداول در Database می‌توانیم از سه روش استفاده کنیم که در ادامه این مقاله آموزشی با این سه روش آشنا خواهید شد.

اولین Property به عنوان کلید اصلی در نظر گرفته می شود.

پروژه ای که در جلسات گذشته ایجاد کردیم را باز کنید ، در کلاس Student کلید اصلی را مشخص نکردیم اما اگر به دیتابیس StudentDB مراجعه کنید متوجه خواهید شد که StudentId به عنوان کلید اصلی در نظر گرفته شده است.

چرا چنین اتفاقی افتاد؟ اگر شما خودتان کلید اصلی را مشخص نکنید به صورت خودکار اولین پراپرتی کلاس به عنوان کلید اصلی در نظر گرفته می شود و چون در کلاس Student اولین پراپرتی StudentId هست این Property به عنوان Primary key در نظر گرفته شده است.

مشخص کردن Primary key به روش Data Annotation Attributes

در این روش برای مشخص کردن کلید اصلی یا Primary key از اتریبیوت [Key()] بالای سر آن پراپرتی که می‌خواهیم به عنوان کلید اصلی در نظر گرفته شود استفاده می‌کنیم.

به سراغ پروژه جلسه آموزشی گذشته میرویم این پروژه را باز کنید اگر یادتان باشد در جلسه آموزشی گذشته تغییر نام ستون یک Table در روش کدفرست را به شما آموزش دادم و حالا می‌خواهیم با استفاده از اتریبیوت Key کلید اصلی این Entity یا موجودیت را مشخص کنیم.

طبق تعریفی که از کلید اصلی خدمت شما ارائه کردم ، به نظرتون کدوم Property از کلاس Student ، کلید اصلی یا Primary key است ؟ بله درست حدس زدید پراپرتی StudentId .

چرا این Property کلید اصلی هست ؟ چون هر دانشجو ، شماره دانشجویی متفاوتی دارد و هیچ دوتا دانشجویی رو نمی توان پیدا کرد که شماره دانشجویی آنها یکسان باشد.

پس بالای سر پراپرتی StudentId از اتریبیوت Key استفاده می‌کنیم ، مطابق با کد زیر :

برای این که برنامه اتریبیوت Key را بشناسد باید using زیر را به بالای کلاس Student اضافه کنید.

حالا کافیه دیتابیس را آپدیت کنیم بعد از آپدیت دیتابیس ، ستون StudentId به عنوان کلید اصلی یا Primary key در نظر گرفته میشود.

چنانچه با نحوه آپدیت دیتابیس در asp.net core آشنایی ندارید پیشنهاد میکنم مقاله آموزش آپدیت Database در روش CodeFirst را حتما مطالعه نمایید.

بعد از آپدیت دیتابیس ، برای مشاهده جدول دیتابیس ، MSSQL را اجرا کنید همانطور که تصویر زیر مشاهده میکنید کلید اصلی یا Primary key با علامت کلید مشخص شده است.

primary key in table

مشخص کردن Primary key به روش Fluent API

با استفاده از روش Fluent پیکربندی کلاس های Domain در Code First با آن آشنا شدید هم می‌توانید کلید اصلی یا Primary key را مشخص کنید.

ابتدا باید متد OnModelCreating را در کلاس Override ، StudentDBContext کنید سپس داخل این متد از کدهای زیر استفاده نمایید.

در کد بالا برای مشخص کردن کلید اصلی از متد HasKey() استفاده کرده ایم و سپس در کد b => b.StudentId پراپرتی کلید اصلی را مشخص کردیم.

پس متد OnModelCreating پس از تغییر به صورت زیر خواهد شد.

در صورتی که بخواهیم کدنویسی کوتاه تری داشته باشیم می‌توانیم بعد از متد ToTable از متد HasKey استفاده کنیم همانند کد زیر :

دوستان این مقاله آموزشی هم به پایان رسید سوالی ، انتقادی ، پیشنهادی داشتید حتما در قسمت نظرات ارسال کنید پاسخگوی شما دوستان خواهم بود.

5
/
5
(
3

امتیاز

)

ادامه مقاله در سایت منبع

دیدگاهتان را بنویسید