سلام من میخوام که به هنگام ثبت یک کاربر جدید نقش آن را هم به صورت پیش فرض تعیین کنم.
با دستورات لینک میخواهم از جدول نقش ها که قبلا ثبت کرده ام نقش مورد نظر را برای کاربر تعیین کنم.
var accountUser = new AccountUser { Firstname = user.Firstname, Lastname = user.Lastname, Role =? };
رابطه بین جداول من از نقش ها(Roles) به کاربران(Roles)، یک به چند است.
public class Role { public Role() { Id = Guid.NewGuid().ToString().Replace("-", ""); } public string Id { get; set; } public string RoleTitle { get; set; } public string RoleName { get; set; } public virtual ICollection<AccountUser> UserId { get; set; } } public class AccountUser { public AccountUser() { Id = Guid.NewGuid().ToString().Replace("-", ""); } public string Id { get; set; } public string Firstname { get; set; } public string Lastname { get; set; } public virtual Role Role { get; set; } }
مشکل کجاست دوست من ؟
شما باید ابتدا نقشها را تعریف کنید مثلا کاربر عادی کدش 2 هست و موقه ثبت کاربر شماره 2 را به آن نسبت دهید
بنده نقش را رو تعریف کردم مثلا عنوان نقش "مدیر سایت" با آی دی 5951cdec53e548de9005e5b390c807ed و نام نقش "Admin"
حال من نمیدونم چطوری به یک کاربر جدید نقش بدم. البته با استفاده از دستورات لینک نه مستقیما با نوشتن آی دی نقش در جدول کاربر
اگر نقش یک کاربر رو مستقیما بدم ممکنه که بخوام جدول نقش ها را به روز کنم در اینصورت آی دی قبلی که پاک کردم یا تغییر دادم ممکنه از دست بره
خب به این شکل عمل کنید
var accountUser = new AccountUser { Firstname = user.Firstname, Lastname = user.Lastname, Role ="5951cdec53e548de9005e5b390c807ed" };
خب در واقع اگر به این شکل عمل کنم ممکنه که جدول نقش ها رو بروزرسانی کنم و آی دی نقش به دلایلی عوض بشه در این صورت باید چکار کرد؟
بنده میخوام مدیریت نقش ها به صورت پویا باشد
میتونبد در جدول یا جایی کد نقش پیفرض را نگهداری کنید و برای کاربر از اون استفاده کنید اگر تغییر کرد اون هم ویرایش کنید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)