سلام خسته نباشید
میخواستم بدونم چجور میشه جدولی که خودمون درست کردیم با جدول های که آیدنتیتی درست کرده رابطه ایجاد کنیم
مثلا من یه جدول کامنت دارم و این کامنت باید یه کاربر userid داشته باشه که اون تو جدول آیدنتیتی هستش ، اگه در این دوره این مورد رو گفتید میشه بگید قسمت چندمه یا اگه نگفتیدم همینجا میشه توضیح بدید به چه شکلی میتونم foreign key بدم به جدول کاربران .
سلام عزیز.
جلسه 23 در این مورد صحبت کردیم.
این قسمت برای اضافه کرن یه فیلد یه جدول هستش ولی من فقط میخوام یه زابطه با آیدی جدول بگیره باید اسم فیلد رو بدم ؟
مثل روابط معمولی هستش فرق خاصی نداره. به عنوان مثال لینک زیر رو بررسی کنید :
https://stackoverflow.com/questions/60698794/how-to-add-one-to-many-relationship-using-identityuser-as-many-to-another-entity
نتونستم پیاده سازی کنم متاسفانه میشه
این کلاسی هست که تازه ساختم
این کلاس هست کامنت های محصول هست
اینم دستور آوردن تمام کامنت های محصول با استفاده از آیدی محصول
ولی نتیجه 0 هست ، با اینکه تو جدول بصورت دستی چندتا کامنت با یوزر آیدی های کاربر مختلف وارد کردم .
کار دیگه ای غیر اینا باید انجام میدادم ؟
رابطه شما طبق چیزی که من دارم میبینم مشکل داره، لینک زیر رو بررسی کنید در مورد روابط بیشتر توضیح داده :
https://docs.microsoft.com/en-us/ef/core/modeling/relationships?tabs=fluent-api%2Cfluent-api-simple-key%2Csimple-key
کامنت های ایجاد شده سمت دیتابیس رو بررسی کنید اگر مشکل حل نشد دیباگ کنید ببنید مشکل کجا هستش.
من اولین باره دارم با این سیستم رحراز هویت کار میکنم یخورده توش سر در گم هستم الان یه بخش از پروژه فقط گیر کرده رو یه رابطه با جدول user
------------------------------------------
جداول که خودم ساختم رابطه ها به خوبی کار میکنن همه کاری میتونم باهاشون بکنم ولی چون آیدنتیتی مدل کلاسی نداره خودش میسازه من فقط نمیدونم چجور یه رابطه به جدول user هاش بدم این لینکی که شما دادید برای رابطه هاس ولی بحث من فقط یه رابطه با جدول user هاشه .
جلسه 23 رو ببنید، توش یه کلاس ApplicationUser ساختیم که مدل کاربران ما هستش. الان با استفاده از این کلاس میتونید رابطه های خودتون رو ایجاد کنید، مثلا :
pulbic class ApplicationUser : IdentityUser
{
public ICollection<Comment> Comments { get; set; }
}
public class Comment
{
public int Id { get; set; }
public string UserId { get; set; }
public ApplicationUser User { get; set; }
}
یه رابطه یک به چند بین مدل کامنت و کاربر.
آها الان فهمیدم چی به چیه یعنی فقط کافیه ما اون جدول رو ارث بری کنیم تمام فیلد هاش رو در اختیار داریم .و هر بلایی دلمون میخواد میتونیم سر اون جدول بیاریم . و اینکه ریمو کردن یا پاک کردن یه فیلد از جدول چجوریه .
خیلی ممنون و تشکر ازتون جناب هاشم پور
بله کاملا درسته، برای ریمو کردن میتونین اون ستون هایی که نمیخواید رو Ignore بکنید، فقط حواستون باشه که اگر این پراپرتی که میخواید ریمو کنید جایی درون Identity داره استفاده میشه ممکنه خطا تولید بشه، لینک زیر رو بررسی کنید برای Ignore کردن :
https://stackoverflow.com/a/38156276
خواهش میکنم عزیز، موفق باشید.
یجورایی بهتر نیست وقتی از سیستم آیدنتیتی استفاده میکنیم همون اول کار بیایم چندتا کلاس درست کنیم و ارث بری هارو انجام بدیم تا وقتی بعدا خواستیم کاری کنیم فقط از کلاس های که ساختیم استفاده کنیم یجوری نماینده درست کنیم واسشون . چون پروژه رفته رفته بزرگتر میشه اینجوری فکر بهتری برای مدیریتش نیست ؟
برای کلاس کاربران اره بهترین کار همینه، خودمون هم همین کار رو انجام میدیم ولی برای بقیه کلاس ها معمولا نیاز نمیشه که شخصی سازی بشن.