【问题标题】:Argument 1: cannot convert from 'Microsoft.EntityFrameworkCore.DbContextOptions' to 'string'参数 1:无法从 'Microsoft.EntityFrameworkCore.DbContextOptions' 转换为 'string'
【发布时间】:2021-12-26 12:58:08
【问题描述】:
public class AuthContext : IdentityDbContext
{
    public AuthContext(DbContextOptions options) : base(options)
    {}
}

在上面的代码 sn-p 中:作为参数发送到基本关键字的选项给出了相同的错误:

参数 1:无法从 'Microsoft.EntityFrameworkCore.DbContextOptions' 转换为 'string'

【问题讨论】:

  • 您能提供错误信息吗?如何在 Startup.cs 中注入 DbContext?

标签: c# asp.net-mvc authentication


【解决方案1】:

IdentityDbContext 构造函数需要来自 string 类型的参数。你传递给它一个类型 DbContextOptions 所以你得到了那个错误。

您可能想要传递的字符串是位于 web 配置文件中的相关连接字符串的名称。

例如:

// web config file

<connectionStrings>
   <add name="AuthContextName" connectionString="your-connection-string" providerName="System.Data.SqlClient" />
</connectionStrings>

// your AuthContext class

public class AuthContext : IdentityDbContext
{
   public AuthContext(DbContextOptions options) : base("AuthContextName")
   {}
 }

【讨论】:

  • 感谢您查看此 Ran ,我真的不知道为什么我跟随的讲师制作了相同的代码 sn-p 并且对他来说工作正常。
  • 感谢 Ryan,您的评论让 e 朝那个方向思考。实际上,基类中没有接受 1 个 DbContextOptions 参数的方法。正如你所说,我使用了错误的命名空间。使用 Microsoft.AspNetCore.Identity.EntityFrameworkCore;我使用的是 Microsoft.AspNet.Identity.EntityFramework 而不是这个核心名称空间。
  • 不客气,我的朋友
猜你喜欢
  • 2015-02-28
  • 1970-01-01
  • 2017-07-05
  • 2021-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多