无法创建“ApplicationDbContext”类型的对象错误

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

我正在尝试使用实体核心框架工作创建数据库表 dotnet ef 迁移添加 init --verbose 和 dotnet ef 数据库更新 但是当我尝试更新表时出现错误“无法创建类型为‘ApplicationDbContext’的对象。有关设计时支持的不同模式,请参阅https://go.microsoft.com/fwlink /?linkid=851728"

ApplicationDbContext

using System;
using System.Collections.Generic;
using Audit.Service.Domain.Entities;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;

namespace Audit.Service.Infrastructure.Repositories
{
    public class ApplicationDbContext : DbContext

    {

        public ApplicationDbContext(DbContextOptions options) : base(options) { }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseNpgsql("Server = localhost; Port = 5432; User Id = postgres; Password =; Database = AuditHistory; ");
        }

        public DbSet<AuditHistory> Audits => Set<AuditHistory>();

    }
}



我也试过如下。对于这种方法,我也遇到了错误

程序.cs

builder.Services.AddDbContext<ApplicationDbContext>(o => o.UseNpgsql(builder.Configuration.GetConnectionString("auditDb"), options => options.EnableRetryOnFailure())) 

ApplicationDbcontext

public class ApplicationDbContext : DbContext
{
    protected readonly IConfiguration Configuration;
    public ApplicationDbContext()
    {

    }

    public ApplicationDbContext(IConfiguration configuration)
    {
        Configuration = configuration;

    }
    protected override void OnConfiguring(DbContextOptionsBuilder options)
    {
        options.UseNpgsql(Configuration.GetConnectionString("auditDb"));
    }
    public DbSet<AuditHistory> Audits { get; set; }
}
}

appsettings.json

{
 "Logging": {
"LogLevel": {
  "Default": "Information",
  "Microsoft.AspNetCore": "Warning"
  }
 },
 "AllowedHosts": "*",
 "ConnectionStrings": {
    "auditDb":"Server=localhost;Port=5432;User Id=postgres;Password=;Database=AuditHistory;"

 }
 }

错误

    System.ArgumentException: Host can't be null
     at Npgsql.NpgsqlConnectionStringBuilder.PostProcessAndValidate()
   at Npgsql.NpgsqlConnection.SetupDataSource()
   at Npgsql.NpgsqlConnection.set_ConnectionString(String value)
   at Npgsql.NpgsqlConnection..ctor(String connectionString)
   at Npgsql.NpgsqlConnection.CloneWith(String connectionString)
   at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlRelationalConnection.CloneWith(String connectionString)
   at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists(Boolean async, CancellationToken cancellationToken)
   at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists()
   at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists()
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_0.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
Host can't be null
c# .net database postgresql connection
1个回答
0
投票

我的实体框架工具版本是“7.0.2”,比运行时“7.0.3”旧。我更新了最新的工具。然后就修好了

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