با سلام من سه جدول به نام های product - user - order دارم حالا هم order و هم product رو متصل کردم به جدول user که درواقع یک circle ایجاد می کنه که در migration خطا زیر رو میده
Introducing FOREIGN KEY constraint 'FK_Orders_Users_UserId' on table 'Orders' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint or index. See previous errors.
آیا راهی هست که این circle را از بین برد بدون حذف ریلیشن ها یا خیر؟
سلام
شما از جدول product یک ریلیشن دارید به user و از جدول order هم یک ریلیشن به user
در این حالت circle ایجاد نمیشه !
بهتره کدهایی که توی کلاس های user و product و order نوشتی رو قرار بدید.
عزیز کدهای بنده مشکلی نداره در واقع وقتی کلید خارجی یوزر رو از یکی از جداول پاک می کنم جدولم ایجاد میشه و مشکلی نداره سوالم رو کامل متوجه نشدید بنده پرسیدم آیا راهی هست این circle رو بدون حذف کلیدخارجی از بین برد یا اینکه حتما باید یکی از کلید خارجی ها را حذف کرد؟
سلام. این لینکو یه نگاه بندازید. فک کنم product رو باید به order وصل کنید نه user
مشکل رو رفع کردم اینجا هم میگم اگر کسی چنین مشکلی داشت رفع کنه
از اونجایی که من جدول product قبلا مقدار گرفته بود و چون کلیدی هم که تعریف کردم Required بود باید حتما مقدار می گرفت به مشکل می خورد و جداول رو پر نمی کرد
برای همین کافیه پراپرتی را به صورت زیر ایجاد کنید
public int? ProductId { get; set; }
قرار دادن یک ؟ در کنار int که باعث میشه جداول مفدار null هم بپذیره
سلام دوستان
دو مدل جدید ایجاد کردم و پس از ایجاد migration، دستور update-database را برای بروز رسانی database اجرا کردم.
اما با خطای زیر مواجه شدم:
There is already an object named 'AspNetRoles' in the database.
لطفا راهنمایی بفرمایید.
تاپیک جدا ایجاد کنید و سوالتون رو مجزا مطرح کنید
در مورد مشکلتون هم AspNetRoles در دیتابیس وجود داره کلاسی که ایجاد کردید نامش را تغییر دهید
ممنون بابت پاسخ
1- این موضوع مربوط به خطای مایگریشن هست دیگه! تاپیک جدید با موضوع تکراری باعث سر در گمی کاربرا میشه.
2- کلاس جدید به نام aspnetroles ایجاد نکردم که نیاز به تغییر نامش باشه 2 مدل به نام های دیگه هست که اصلا کاری به aspnetroles نداره!
چند نکته رو باید رعایت کنید
1- در رابطه های یک به چند در قسمت چند از نوع ICollection و [notmaped] باید باشه
2- میتونین از علامت سوال قبل نوع رابطه قسمت یک استفاده کنید مثل
public virtual person? personItem {get;set;}
3-
modelBuilder.Entity<AccessGroup>()
.HasMany(e => e.PermissionItems)
.WithOne(e => e.AccessGroupItem)
.HasForeignKey(e => e.AccessGroupID)
.OnDelete(DeleteBehavior.NoAction);
در رابطه یک به چند بالا به جای HasForeignKey(e => e.ID) بهتره یک پروپرتی برای این کار داشته باید. مانند مثال بالا
4- اگر پروژه شما بزرگ هست یک پروژه کوچک بسازین با کل کلاس ها تون و تیکه تیکه DbSet هاتون رو اضافه کنین و مپینگ بسازین و دیتابس تست اتون رو بروز کنین تا خطا ها رو پیدا و راحت تر رفع کنید.
5- زمانی که تیکه تیکه دارین ریلیشن ها و کلاس هاتون و DbSet ها رو ویرایش میکنین بهتره تمام فایل های پوشه Migration رو پاک کنین و مجدد add-migration بزنین و بعدش update-database تا اینطوری بدونین در هر قدم مشکل از کجاست.
6- ریلیشن ها رو خودتون دستی ست کنین و مقدار .OnDelete(DeleteBehavior.NoAction); رو براشون در نظر بگیرن
7- بجای
[Key]
[Column("ID")]
میتونین از
[Key, ForeignKey("ID")]
استفاده کنین
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2008
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
75
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
109
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1033
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
428
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4797
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
214
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
117
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
396
- پاسخ :
2
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2008
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
75
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
109
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1033
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
428
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4797
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1160
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
597
- پاسخ :
1
|