• 1400/03/14

ارتباط جداول شخصی با جداول آیدنتیتی :

سلام خسته نباشید 
میخواستم بدونم چجور میشه جدولی که خودمون درست کردیم با جدول های که آیدنتیتی درست کرده رابطه ایجاد کنیم 
مثلا من یه جدول کامنت دارم و این کامنت باید یه کاربر userid داشته باشه که اون تو جدول آیدنتیتی هستش  ، اگه در این دوره این مورد رو گفتید میشه بگید قسمت چندمه یا اگه نگفتیدم  همینجا میشه توضیح بدید به چه شکلی میتونم foreign key بدم به جدول کاربران .

  • 1400/03/14
  • ساعت 21:01

سلام عزیز.

جلسه 23 در این مورد صحبت کردیم.


  • 1400/03/14
  • ساعت 21:37

این قسمت برای اضافه کرن یه فیلد یه جدول هستش ولی من فقط میخوام یه زابطه با آیدی جدول بگیره  باید اسم فیلد رو بدم ؟


  • 1400/03/14
  • ساعت 21:50

مثل روابط معمولی هستش فرق خاصی نداره. به عنوان مثال لینک زیر رو بررسی کنید :

https://stackoverflow.com/questions/60698794/how-to-add-one-to-many-relationship-using-identityuser-as-many-to-another-entity


  • 1400/03/14
  • ساعت 23:49

نتونستم پیاده سازی کنم متاسفانه میشه 

این کلاسی هست که تازه ساختم 

این کلاس هست کامنت های محصول هست 


اینم دستور آوردن تمام کامنت های محصول با استفاده از آیدی محصول

ولی نتیجه 0 هست ، با اینکه تو جدول بصورت دستی چندتا کامنت با  یوزر آیدی های کاربر مختلف وارد کردم .
کار دیگه ای غیر اینا باید انجام میدادم ؟



 

 


  • 1400/03/15
  • ساعت 01:22

رابطه شما طبق چیزی که من دارم میبینم مشکل داره، لینک زیر رو بررسی کنید در مورد روابط بیشتر توضیح داده :

https://docs.microsoft.com/en-us/ef/core/modeling/relationships?tabs=fluent-api%2Cfluent-api-simple-key%2Csimple-key

کامنت های ایجاد شده سمت دیتابیس رو بررسی کنید اگر مشکل حل نشد دیباگ کنید ببنید مشکل کجا هستش.


  • 1400/03/15
  • ساعت 16:34

من اولین باره دارم با این سیستم رحراز هویت کار میکنم یخورده توش سر در گم هستم الان یه بخش از پروژه فقط گیر کرده رو یه رابطه با جدول user  
------------------------------------------
جداول که خودم ساختم رابطه ها به خوبی کار میکنن همه کاری میتونم باهاشون بکنم ولی چون آیدنتیتی مدل کلاسی نداره  خودش میسازه من فقط نمیدونم چجور یه رابطه به جدول user هاش بدم این لینکی که شما دادید برای رابطه هاس  ولی بحث من فقط یه رابطه با جدول user هاشه .


  • 1400/03/15
  • ساعت 16:40

جلسه 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; }
}

یه رابطه یک به چند بین مدل کامنت و کاربر.


  • 1400/03/15
  • ساعت 17:43

آها الان فهمیدم چی به چیه  یعنی فقط کافیه ما اون جدول رو ارث بری کنیم تمام فیلد هاش  رو در اختیار داریم .و هر بلایی دلمون میخواد میتونیم سر اون جدول بیاریم . و اینکه  ریمو کردن یا پاک کردن یه فیلد از جدول چجوریه .

خیلی ممنون و تشکر ازتون جناب هاشم پور 


  • 1400/03/15
  • ساعت 18:25

بله کاملا درسته، برای ریمو کردن میتونین اون ستون هایی که نمیخواید رو Ignore بکنید، فقط حواستون باشه که اگر این پراپرتی که میخواید ریمو کنید جایی درون Identity داره استفاده میشه ممکنه خطا تولید بشه، لینک زیر رو بررسی کنید برای Ignore کردن :

https://stackoverflow.com/a/38156276
 

خواهش میکنم عزیز، موفق باشید.


  • 1400/03/15
  • ساعت 18:38

یجورایی بهتر نیست وقتی از سیستم آیدنتیتی استفاده میکنیم همون اول کار بیایم چندتا کلاس درست کنیم  و ارث بری هارو انجام بدیم تا وقتی بعدا خواستیم کاری کنیم فقط از کلاس های که ساختیم استفاده کنیم یجوری نماینده درست کنیم واسشون . چون پروژه رفته رفته  بزرگتر میشه اینجوری فکر بهتری برای مدیریتش نیست ؟


  • 1400/03/15
  • ساعت 19:19

برای کلاس کاربران اره بهترین کار همینه، خودمون هم همین کار رو انجام میدیم ولی برای بقیه کلاس ها معمولا نیاز نمیشه که شخصی سازی بشن.


logo-samandehi