سلام من کلاس نوشتم که چک میکنه از دیتابیس اگه جدول role خالی باشه دوتا role اد کنه ولی بعد که اجراش میکنم یه خطا میده و میگه یک یا چند خطا در context وجود داره در صورتی که نداره خیلی تست کردم ولی چیزی پیدا نکردم کمکم کنید.
لطفا کد ها و متن ارور را قرار دهید.
public static async Task DataBaseInitializerasync(IServiceProvider serviceProvider) { using(var db = serviceProvider.GetRequiredService<DataContext>()) { var sqlDatabase = db.Database; if (sqlDatabase != null) { await sqlDatabase.EnsureCreatedAsync(); if (db.Role == null) { db.Role.Add(new Role() { Id = 1, TitleFa = "مدیر", TitleEn = "Admin" }); db.Role.Add(new Role() { Id = 2, TitleFa = "کاربر", TitleEn = "User" }); db.SaveChanges(); } if (db.Role != null) { if (!db.Role.Where(r => r.TitleEn == "Admin").Any()) { db.Role.Add(new Role() { Id = 1, TitleFa = "مدیر", TitleEn = "Admin" }); } if (!db.Role.Where(r => r.TitleEn == "User").Any()) { db.Role.Add(new Role() { Id = 2, TitleFa = "کاربر", TitleEn = "User" }); db.SaveChanges(); } } } } }
متن خطا اینه
معادلی برای DataContext تعریف نشده است. از ASP.NET Core استفاده می کنید؟
بله یعنی معادلی تعریف نشده
شما باید وابستگی DbContext را به ServiecProvider تزریق کنید. در کلاس StartUp :
public void ConfigureServices(IServiceCollection services) { services.AddDbContext<YourContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddMvc(); }
چند نکته:
لطفا قبل از پرسیدن سوال جزئیات را شرح دهید، کد و متن ارور را قرار بدهید و بگویید از چه فریم ورکی با چه نسخه و ... استفاده می کنید.بدون شرح دادن جزئیات چگونه به شما پاسخ داده شود؟! : )
قبل از استفاده از هر فریم ورک یا فرایندی لطفا مستندات آن را مطالعه کنید: ASP.NET Documentation | Microsoft Docs
الان این خطلا رو میده
public SchoolContext(DbContextOptions<DataContext> options) : base(options) { }
context شما باید دارای سازنده باشد .
ببخشید من پروژه رو ضمینه کردم میشه یه نگاهی بهش بندازید
بررسی کردم خطایی نداشت، اگر خطا دارید متنش رو قرار بدید.
آقای علیزاده پروژه تو کد نویسیش ایراد نداره وقتی run می کنی این خطا رو میده
"One or more errors occurred. (Cannot resolve scoped service 'DAL.Context.DataContext' from root provider.)"
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)