سلام
یک مدل به جداول قبلی بانک اطلاعاتی اضافه کردم
رفتم در SQL Server کل Database رو پاک کردم
پوشه Migrations رو هم پاک کردم
سییستم رو هم رستارت کردم ....
حالا هرچقدر add-migration میزنم خطا میده :
PM> add-migration new
System.InvalidOperationException: The entity type 'SelectListGroup' requires a primary key to be defined.
The entity type 'SelectListGroup' requires a primary key to be defined.
لطفا راهنمایی بفرمایید.
ضمنا قبل از پاک کردن پایگاه داده هم add-migration زده بودم ، که پس از اجرا به هر کنترلری که میرفت که در آن صحبت از List شده بود . این خطا رو می گرفت که برای ایجاد لیست به یک Primery Key در Entity Frameworkاحتیاج دارم ...
دلیل این خطا کاملا مشخص هست. داره میگه شما یک انتیتی (جدول) به نام SelectedListGroup دارید که کلید اصلی براش تعریف نکردید.
public class SelectListGroup
{
[Key]
public int Id {get; set;}
public string Title {get; set;}
}
دقت کنید که در انتیتی فریم ورک برای همه جداول باید کلید اصلی تعریف بشه.
در مورد اینکه می فرمایید پایگاه داده و مایگریشن ها رو هم حذف کردید برای این کار باید یه سری قواعد رو رعایت کنید. در لینک زیر نحوه این کار توضیح داده شده.
public class BaseEntity
{
public int Id { get; set; }
}
public class product : BaseEntity
{
دیکه لازم نست اینجا id تعریف بشه
}
سلام
میتونید یک کلاس تعریف کنید فیلدهای مشترک در همه مدل ها رو در اون قرار بدبد و مدلهای دیگه رو از اون ارث بری داشته باشند
با مواردی که دوستان گفتند حل نشد .
بصورت خلاصه عرض میکنم :
در ViewModel هائی که یک لیست از جدول دیگه تهیه میکنند . Property مورد نظر رو باید Attribute [NotMapped] بزنید !
و فضای نام using System.ComponentModel.DataAnnotations.Schema; روهم اضافه کنید
قطعه زیر یک مثال است . . .
using System.ComponentModel.DataAnnotations.Schema;
.
.
.
[NotMapped]
public List<SelectListItem> ApplicationRoles { get; set; }
[Display(Name = "نقش ")]
public string ApplicationRoleId { get; set; }
من توضیح بیشتری ندارم جز اینکه :
تمام جداول من کلید اصلی داشت
تا دیروز کدهای من کار میکردند . و روزی چندین بار دیباگ میشدند و ایرادی نبود . تا اینکه خواستم یک پراپرتی از مدل دو پراپرتی رو داینامیک بکنم .
به هر حال ایراداتی اینچنینی باید یک روز من رو از بین ببرند . اجازه بدید به این ایرادات بگوئیم : ایراد سمّی!
با تشکر از شما
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2013
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
78
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
110
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
215
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
117
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
397
- پاسخ :
2
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2013
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
78
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
110
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
931
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1161
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
599
- پاسخ :
1
|