我正在玩ASP.NET 5身份并陷入困境。
这是由Identity:
创建的样板上下文public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public DbSet<Transaction> Transactions { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
}
我添加了一个存在于Identity框架之外的其他实体Transactions
。
当我启动网站时,所有身份验证功能都正常,但当我尝试查询Transactions
时,我收到此错误:
InvalidOperationException:未配置任何数据库提供程序。 通过覆盖您的OnConfiguring来配置数据库提供程序 DbContext类或在设置时的AddDbContext方法 服务。
进一步研究这个错误,所有迹象似乎都指向在Startup.cs中注册服务:
public void ConfigureServices(IServiceCollection services)
{
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));
services.AddMvc();
}
尽管如此,仍然会收到错误。
谢谢!
答案 0 :(得分:0)
我知道这是愚蠢的,找到答案。
使用ef上下文时,在新派生时,未设置上下文。
所以需要注入:
public class HomeController : Controller
{
private readonly ApplicationDbContext _appCtx;
public HomeController(
ApplicationDbContext appCtx)
{
_appCtx = appCtx;
}
public JsonResult Durr()
{
return new JsonResult(_appCtx.Users.ToList());
}
}