C#DbContext问题:参数1:无法将'string'转换为'Microsoft.EntityFrameworkCore.DbContextOptions'

问题描述 投票:0回答:1

我在DbContext中遇到了一些问题。我决定创建一个新类,该类将负责与数据库的连接。

public class PetAlertContext : DbContext
{
    public PetAlertContext() : base("PetAlert") { }

    public DbSet<Zwierze> Zwierzaki { get; set; }
        public DbSet<Osoba> Osoby { get; set; }
        public DbSet<Placowka> Placowki { get; set; }
        public DbSet<Ogloszenie> Ogloszenia { get; set; }
    }
}

但是我在base名称附近有一些例外:

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

我发现类似的代码具有类似的问题和响应,但是在理解这种结构方面存在一些问题。

您愿意帮助我吗?

//public PetAlertContext(string connectionString) : base(GetOptions(connectionString))
    //{
    //}

    //private static DbContextOptions GetOptions(string connectionString)
    //{
    //    return SqlServerDbContextOptionsExtensions.UseSqlServer(new DbContextOptionsBuilder(), connectionString).Options;
    //}
c# database string entity-framework-core dbcontext
1个回答
3
投票

Entity Framework Core的构造函数不采用单个字符串作为参数,而是采用DbContextOptions实例。参见the documentation here。您当前尝试使用的构造函数是EF6构造函数,它仅将连接字符串作为参数(see here)。您在问题中注释掉的代码显示了如何实例化DbContextOptions的实例,即根据文档DbContextOptionBuilder使用here实例化。因此,假设您使用的是SQL Server数据库,则可以使用该代码。

© www.soinside.com 2019 - 2024. All rights reserved.