为了账号安全,请及时绑定邮箱和手机立即绑定

ASP.NET核心实体框架-dbModel上下文中的InvalidOperation

ASP.NET核心实体框架-dbModel上下文中的InvalidOperation

C#
慕桂英4014372 2021-03-30 17:14:57
初始化dbModel上下文时出现错误,如下所示:这是我的dbContext课:public class DbModel : DbContext{    public DbModel()    {    }    public DbModel(DbContextOptions<DbModel> options)        : base(options)    { }    public DbSet<UserModel> User {get;set;}}我根据stackoverflow中的一些答案在ConfigureServices方法中添加了以下代码Startup.cs,但是仍然出现错误。services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();services.AddSingleton<IActionContextAccessor, ActionContextAccessor>();这是我的ConfigureServices方法:public void ConfigureServices(IServiceCollection services){        services.AddMvc();        var connection = @"Server=(localdb)\mssqllocaldb;Database=EFGetStarted.AspNetCore.Restaurant;Trusted_Connection=True;ConnectRetryCount=0";        services.AddDbContext<DbModel>(options => options.UseSqlServer(connection));        services.AddSwaggerGen(c =>        {            c.SwaggerDoc("v1", new Info { Title = "Restaurant APIs", Description = "Swagger Core API" });        });        services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();        services.AddSingleton<IActionContextAccessor, ActionContextAccessor>();    }可能是什么原因?
查看完整描述

2 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

您正在手动初始化,DbModel而不是使用DI将其注入到控制器中。


public ValuesController : Controller

{

    private readonly DbModel _db;


    public ValuesController(DbModel db)

    {

        _db = db;

    }

}


查看完整回答
反对 回复 2021-04-10
?
侃侃无极

TA贡献2051条经验 获得超10个赞

上面的答案是正确的。DbContext初始化需要从容器中注入依赖项,因此您不能直接使用new。


查看完整回答
反对 回复 2021-04-10
  • 2 回答
  • 0 关注
  • 201 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信