剛剛創建了一個新的 dotnet web 應用程式,還不能創建我的資料庫。
在我的基礎設施層中,我添加了一個 dbcontext :
public class SurveyContext : DbContext
{
public SurveyContext(DbContextOptions<SurveyContext> options) : base(options)
{
}
public DbSet<Survey> Surveys { get; set; }
public DbSet<Question> Questions { get; set; }
public DbSet<Answer> Answers { get; set; }
}
在 API 中,Program.cs 我添加了這個:
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<SurveyContext>(x => x.UseSqlite(connectionString));
我嘗試創建遷移,但出現此錯誤
無法創建“SurveyContext”型別的物件
為了避免 IDesignTimeDbContextFactory,我添加了一個默認建構式 ( public SurveyContext(){}) 并ServiceLifetime.Transient在注入中,如此處所示。但現在我得到了另一種錯誤
沒有為此 DbContext 配置資料庫提供程式。可以通過覆寫“DbContext.OnConfiguring”方法或在應用程式服務提供程式上使用“AddDbContext”來配置提供程式。如果使用了“AddDbContext”,那么還要確保您的 DbContext 型別在其建構式中接受 DbContextOptions 物件并將其傳遞給 DbContext 的基本建構式。
我以前從來沒有遇到過這種問題。有人可以指導我理解我做錯了什么嗎?
uj5u.com熱心網友回復:
原來我在安裝軟體包時犯了一個錯誤。我在基礎設施專案中有 EntityFrameworkCore.Design 而不是 API。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/464420.html
