ASP.NET-Identity框架之外的实体无法正常工作

时间:2016-05-12 19:37:56

标签: asp.net-mvc-5 asp.net-identity entity-framework-core

我正在玩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();
}

尽管如此,仍然会收到错误。

谢谢!

1 个答案:

答案 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());    
    }
}