2016-05-12 66 views
0

我正在玩弄ASP.NET 5身份识别并陷入困境。ASP.NET身份框架无法正常工作的实体

这是通过身份样板背景下创造的:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public DbSet<Transaction> Transactions { get; set; } 

    protected override void OnModelCreating(ModelBuilder builder) 
    { 
     base.OnModelCreating(builder); 
    } 
} 

我添加了存在身份框架之外的附加实体Transactions

当我启动该网站,所有验证的东西工作正常,但是当我尝试查询Transactions我得到这个错误:

InvalidOperationException: No database providers are configured. Configure a database provider by overriding OnConfiguring in your DbContext class or in the AddDbContext method when setting up services.

进一步寻找这个错误,所有的迹象似乎都指向注册Startup.cs中的服务:

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddEntityFramework() 
     .AddSqlServer() 
     .AddDbContext<ApplicationDbContext>(options => 
      options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"])); 

    services.AddMvc(); 
} 

尽管如此,仍然出现错误。

谢谢!

回答

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());  
    } 
} 
相关问题