[英]'No database provider has been configured for this DbContext' using SQLite
我只是嘗試使用EF Core和SQLite,因此對此問題有些困惑。
如果我嘗試像這樣配置數據庫:
services.AddDbContext<MyDbContext>(options => options.UseSqlite("Filename=./App_Data/dashboard.db") );
然后執行:
dotnet ef migrations add InitialCreate -c MyDbContext
我得到:
'尚未為此DbContext配置數據庫提供程序'
但是,如果我這樣做:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Filename=./App_Data/dashboard.db");
}
所有工作均按預期進行。
我的上下文設置為使用流暢的界面:
public MyDbContext(DbContextOptions options)
: base(options)
{
}
public MyDbContext(DbContextOptions<MyDbContext> options)
: base(options)
{
}
從各種文章看來,其他人都可以使用流利的方法。
還有其他人遇到過此問題並在使用Core 2.1.0時解決了嗎?
我會嘗試向您的項目中添加一個設計時數據庫上下文工廠,如下所示:
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
namespace yournamespace
{
public class YourDbContextDesignTimeFactory : IDesignTimeDbContextFactory<YourDbContext>
{
public YourDbContext CreateDbContext(string[] args)
{
var builder = new DbContextOptionsBuilder<YourDbContext>();
builder.UseSqlite("Data Source=somename.db");
return new YourDbContext(builder.Options);
}
}
}
我認為連接字符串不一定正確,EF在生成遷移時將使用此字符串創建上下文
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.