如何在具有个人身份验证的ASP .NET Core 2.0的AccountController中获取ApplicationDbContext实例?

时间:2018-07-13 12:45:39

标签: c# dependency-injection asp.net-core-mvc entity-framework-core asp.net-core-2.0

我是ASP .NET Core的新手,几乎不需要帮助。我已经使用个人身份验证创建了ASP .NET Core 2.0 MVC项目。现在,我想在我的AccountController中访问Current ApplicationDbContext。通过搜索,我发现我们可以像这样的代码一样使用依赖注入。

    private readonly ApplicationDbContext _context;

    public AccountController(ApplicationDbContext context)
    {
        _context = context;
    }

此方法在Scaffolded AccountController以外的所有其他控制器上都可以正常工作,并且在运行的项目上会产生以下错误:

InvalidOperationException: Multiple constructors accepting all given argument types have been found in type 'PacePreneur.Controllers.AccountController'. There should only be one applicable constructor.

我知道这个错误是由于这个新的构造函数造成的,因为AccounntController已经有一个构造函数,但是我不知道如何使用它来获取当前的DbContext。我仍在寻找其他解决方案。

PS:对不起,这是一个无意义的问题。

1 个答案:

答案 0 :(得分:1)

仅制作一个构造函数,并确保该构造函数接受第一个构造函数所做的所有操作,但将library(mice) library(miceadds) library(estimatr) # imputation of the dataset: use six imputations data(data.ma01) dat <- data.ma01[, -c(1)] # note I keep idschool in data imp <- mice::mice( dat , maxit = 3, m = 6) datlist <- miceadds::mids2datlist(imp) # linear regression with cluster robust standard errors mod <- lapply( datlist, function (dat) { estimatr::lm_robust(read ~ paredu + female, dat, clusters = idschool) } ) # subset mod <- lapply( datlist, function (dat) { estimatr::lm_robust(read ~ paredu + female, dat, clusters = idschool, subset = urban == 1) } ) # weights mod <- lapply( datlist, function (dat) { estimatr::lm_robust(read ~ paredu + female, dat, clusters = idschool, weights = studwgt) } ) # note that you can use the `se_type` argument of lm_robust() # to change the vcov estimation # extract parameters and covariance matrix betas <- lapply(mod, coef) vars <- lapply(mod, vcov) # conduct statistical inference summary(pool_mi( qhat = betas, u = vars )) 添加为另一个参数。因此,如果您的原始构造函数采用了参数ApplicationDbContexta,请删除新的构造函数,并将b添加到现在需要dbcontexta的构造函数中bab