با سلام
به موقع ساخت جدول به روش کد فرست یا استفاده از مایگریشن ها در دیتا بیس جدول را ایجاد نمی کند و در پنجره باز شده در محیط ویژوال استادیو بصورت زیر خالی است. در واقع مایگریشن ساخته می شود اما هیچ محتویاتی ندارد و کلاس ایجاد شده خالی می باشد.
احتمالا شما یک بار مایگریشن رو ایجاد کردید و بعد پاک کردید. اگر هیچ مایگریشنی هنوز ندارید کلا پوشه ماگریشن رو پاک کنید و مجدد از طریق دستور زیر Migration ایجاد کنید
Add-migration mig1
سعی کنید نام migration رو یه چیز جدید بذارید و از نامهایی که قبلا استفاده کردید استفاده نکنید ممکنه توی حافظه ویژوال استودیو مونده باشه.
ضمنا دقت کنید که جداولی که ایجاد کردید حتما توی DbContext پروژه به عنوان یک Property تعریفش کرده باشید
Public DbSet<ClassName> Tabke_Name {get; set;}
احتمالا با این کارها حل میشه. اما میتونید برای اطمینان بیشتر توی دیتابیس جدول __migrationhistory هم نگاه کنید که رکوردی نداشته باشه. این جدول با هر بار ایجاد مایگریشن یک رکورد بهش اضافه میشه. اگر مایگریشن های خودتون رو پاک کردید ردیف های این جدول رو هم پاک کنید تا همه چیز از صفر بشه
این مشکل در زمانی اتفاق می افتد که شما در DBContext نام جداول تعریف نشده . به خاطر اینه که چیزی رو شناسایی نمیکنه .
همونطور که دوستان گفتن دلیل اصلی خالی بودن مایگریشن این هست که بعد از اینکه شما یک Class رو در پوشه Model خودتون ایجاد کردید این کلاس رو به عنوان یک Property به کلاس DbContext پروژه معرفی نکردید.
همونطور که دوستمون fateme گفت باید در کلاس DbContext این کار رو تعریف کنید.
public class DbContext : DbContext
{
public DbContext(DbContextOptions<DbContext> option) : base(option)
{
}
public DbSet<Customer> Customer_Tbl { get; set; }
}
مطابق یا کدهای بالا می تونید این کار رو انجام بدید.
اما گاهی اوقات شما یک تغییری در یکی از کلاسهای خودتون ایجاد می کنید. مثلا فیلدی رو اضافه می کنید و یا فیلدی رو حذف می کنید و یا اینکه فیلدی رو از حالت int به string تغییر می دید. در این حالت باید ابتدا پروژه رو Build کنید و بعد از اون اقدام به ساخت مایگریشن کنید و سپس از دستور زیر استفاده کنید
Update-Database
دقت کنید در این حالت به هیچ عنوان مایگریشن ایجاد شده رو پاک نکنید. چون شما هر Migration رو که ایجاد می کنید و دیتابیس رو آپدیت می کنید یک رکورد در جدول __EFMigrationsHistory ثبت میشه که تعداد مایگرینش های پروژه شما و نامهای اونها باید دقیقا با تعداد رکوردهای این جدول و نام Migration ها در این جدول یکسان باشه وگرنه دچار مشکل میشید.
برای کسب اطلاعات بیشتر این لینک رو کلیک کنید.
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
64
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
101
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1032
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1349
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
207
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
116
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
395
- پاسخ :
2
|
تاریخ :
1403/06/25
- ساعت :
11:39:00 PM
- بازدید :
564
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
64
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
101
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1032
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1349
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1158
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
596
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
207
- پاسخ :
1
|