• 1405/08/01

کلید اصلی در جداول UserInRole و RolePermission :

با سلام خدمت استاد گرامی و بقیه دوستان و هم دوره ای ها.

استاد شما در قسمت ساخت مدل های role اومدید برای UserInRole یک فیلد Id در نظر گرفتید به عنوان کلید اصلی و گفتید میتونیم از UserId و RoleId هم به عنوان کلید اصلی استفاده کنیم ولی برای اینکه کاربر چند نقش داشته باشه یا یک نقش برای چند کاربر بشه ارور میده و امتحان نکنید اینکارو (قسمت35) 

ولی با قرار دادن این تکه کد برای جدول  UserInRole میشه هردو فیلد UserId و RoleId رو به عنوان کلید اصلی درنظر گرفت بدون که خطایی بده:

builder.HasKey(x => new { x.UserId, x.RoleId });

با این کار  فقط زمانی خطای تکراری بودن میده که هردوی این کلید ها به صورت همزمان تکراری باشن که خطای طبیعی هم است چون دیتای تکراری وارد دیتابیس داره میشه و در این روش هم برای ویرایش نقش ها فیلد Id هم نداریم که هربار وقتی همه نقش هارو حذف میکنیم و جدید اضافه میکنیم مقدارش اضافه بشه تو جدول