3 ضمیمه
اررور نصب پکیج وقتی پکیج نصب هست!
سلام دوستان
من به تازگی شروع به یادگیری ASP.Net Core کردم و وقتی که پروژه رو ایجاد می کنم با خطاهای پی در پی مواجه می شم!
- پروژه رو به هر دو صورت ASP.NET Core Web App و ASP.NET Core Web App(Model-View-Controller) ایجاد کردم.
- از دات نت کور 7 استفاده کردم.
- کلاس لایبرری های پروژه هم دات نت 7 هستند.
- پکیج های زیر هم نصب کردم:
به محض اینکه در این مرحله پروژه رو بیلد می کنم، اررور زیر نمایش داده می شه که هر چند علتش رو نمی دونم ولی با دستور dotnet restore رفع می شه.
بعد وقتی می خوام مایگریشن بزنم، هر چند که پکیج نصب هست و ورژن پکیج رو متناسب با دات نت کور در نظر گرفتم ، با اررور زیر مواجه می شم:
عالی میشه اگه راهنماییم کنید.
نقل قول: اررور نصب پکیج وقتی پکیج نصب هست!
سلام.
اینکه اشکال اول رو با dotnet restore رفع میکنید مورد خاصی نیست چون در ایجاد برخی پروژه ها VS کتابخانه های ضروری را اضافه نمیکنه که با اجرای دستور dotnet restore این مشکل حل میشه. درخصوص بروز خطا در زمان migration بفرمایید solution شما از چند پروژه تشکیل شده و آیا در زمان Migration پروژه ای را انتخاب میکنید که DbContext آنجا هست؟ اگر چندین DbContext دارید هم باید مشخص کنید کدام DbContext را می خواهید Migrationبزنید.
نقل قول: اررور نصب پکیج وقتی پکیج نصب هست!
نقل قول:
نوشته شده توسط
mmbguide
سلام.
اینکه اشکال اول رو با dotnet restore رفع میکنید مورد خاصی نیست چون در ایجاد برخی پروژه ها VS کتابخانه های ضروری را اضافه نمیکنه که با اجرای دستور dotnet restore این مشکل حل میشه. درخصوص بروز خطا در زمان migration بفرمایید solution شما از چند پروژه تشکیل شده و آیا در زمان Migration پروژه ای را انتخاب میکنید که DbContext آنجا هست؟ اگر چندین DbContext دارید هم باید مشخص کنید کدام DbContext را می خواهید Migrationبزنید.
ساختار پروژه به این صورت هست:
solution
- WebApp
- WebApp.EF
-WebApp.Contracts
-WebApp.Entities
-WebApp.Services
-WebApp.Test
پروژه فقط در کلاس لایبرری WebApp.EF دارای DbContext هست و همینطور در زمانی که پروژه پیش فرض MVC رو می ساخت، کانکشن استرینگ پیش فرض رو کامنت کردم. در نتیجه فقط یک کانکشن استرینگ دارم.
موقع مایگریشن WebApp.EF رو انتخاب کردم.
نقل قول: اررور نصب پکیج وقتی پکیج نصب هست!
درزمان Migration پروژه EF را انتخاب کنید و در پروژه MVC اجازه بدید ConnectionString وجود داشته باشه. اگر هم نمی خواهید این کار را بکنید، رشته اتصال را در همان DbContext تعریف کنید. اگر باز هم به مشکل برخوردید یک کلاس در همان پروژه EF مطابق زیر ایجاد کنید:
public class cesContextFactory : IDesignTimeDbContextFactory<cesContext>
{
public cesContext CreateDbContext(string[] args)
{
var optionsBuilder = new DbContextOptionsBuilder<cesContext>();
optionsBuilder.UseSqlServer("Data Source = .; Initial Catalog = cesSolutions; Integrated Security = true;");
return new cesContext(optionsBuilder.Options);
}
}
نقل قول: اررور نصب پکیج وقتی پکیج نصب هست!
کلاسی که گفتید رو اضافه کردم. همینطور، دو تا نکته ظریف بود که در نظر نگرفته بودم:
1. پکیج Microsoft.EntityFrameWorkeCore.Design رو برای پروژه ای که startup بود (در پروژه من WebApp) هم نصب کردم.
2. پکیج ها رو به روزرسانی کردم.
و اینطوری اررور رفع شد.
mmbguide ممنونم از زمانی که گذاشتید.