Entity Framework Core 不断抛出错误“'没有为此 DbContext 配置数据库提供程序”

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

我快要疯了。我正在学习软件工程,目前我们正在使用 .NET 进行 C#。因此,我们应该使用 Entity Framework 在我们的 PC 上使用 SQL Server 在本地数据库中创建和发送/接收数据。

我已尽我最大的能力创建了与我的老师完全相同的代码,但我所做的任何事情都不允许我向数据库发送任何内容。我得到一个错误

没有为此 DBContexts 配置数据库提供程序

我的老师正在使用

void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

这样做,但它对我不起作用。

我想用那种方式,但在询问 ChatGPT 后,我知道使用一种叫做

addDbcontext
的东西,我也试过但没有用。

我的代码似乎可以用我提供的连接字符串创建一个数据库,但它不允许我用a发送数据

protected override void OnModelCreating(ModelBuilder modelBuilder)

所以如果有人能告诉我我在使用这个实体框架和 SQL Server 做错了什么,我将不胜感激!

DBContext
班级

using Microsoft.EntityFrameworkCore;
using Opgave1.Classes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Opgave1.DBHandle
{
    public class SkoleKlasseContext : DbContext
    {
        public SkoleKlasseContext() 
        {
        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer("Data Source=DESKTOP-5CSHCTM\\SQLEXPRESS; Initial Catalog = Skoleklasse1; Integrated Security = SSPI; TrustServerCertificate = true");
        }
        
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            modelBuilder.Entity<SkoleKlasse>().HasData(new SkoleKlasse[] { new SkoleKlasse { KlasseID = -1, KlasseNavn = "21T", Lokale = "A1.23", SpecialKlase = false } });
        }

        public DbSet<SkoleKlasse> skoleKlasser { get; set; }
    }
}

主课

public partial class MainWindow : Window
{
    private SkoleKlasseContext context = new SkoleKlasseContext();

    public MainWindow()
    {
        InitializeComponent();

        // Call EnsureCreated to create the database if it does not exist
        bool created = context.Database.EnsureCreated();

        if (created)
        {
            MessageBox.Show("Database created");
        }
    }
}
c# .net sql-server entity-framework
© www.soinside.com 2019 - 2024. All rights reserved.