c# - .Net Core 2 EF core 连接串问题

标签 c# entity-framework ef-core-2.0 ef-core-2.1

这是我的 appsettings.json

 "ConnectionStrings": {
    "Circolari": "Server=abcde;Database=Circolari;Trusted_Connection=True;"
  }

这是我的startup.cs
 public Startup(IConfiguration configuration, IHostingEnvironment env)
 {
        Configuration = configuration;
        IConfigurationBuilder configurationBuilder = new ConfigurationBuilder()
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
        Configuration = configurationBuilder.Build();
 }


 // This method gets called by the runtime. Use this method to add services to the container.

    public void ConfigureServices(IServiceCollection services)
    {
        //Circolari
        string connectoionString = Configuration.GetConnectionString("Circolari");
        services.AddDbContext<CircolariContext>(options => options.UseSqlServer(connectoionString));
        services.AddMvc();
    }

所以当我做查询时
using (CircolariContext db = new CircolariContext(new DbContextOptions<CircolariContext>()))
{
   List<Argomenti> listaArgomenti = db.Argomenti.ToList();
}

我有问题:处理请求时发生未处理的异常。

InvalidOperationException: 使用了命名的连接字符串,但在应用程序的配置中找不到名称“Circolari”。请注意,仅在使用“IConfiguration”和服务提供程序时才支持命名连接字符串,例如在典型的 ASP.NET Core 应用程序中。见 https://go.microsoft.com/fwlink/?linkid=850912想要查询更多的信息。

Microsoft.EntityFrameworkCore.Storage.Internal.NamedConnectionStringResolverBase.ResolveConnectionString(string connectionString)

有人可以帮我吗?

最佳答案

YouContextFile.cs 添加此代码

 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {
               // add IConfigurationRoot  to get connection string 
                IConfigurationRoot configuration = new ConfigurationBuilder()
                .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
                .AddJsonFile("appsettings.json")
                .Build();
                optionsBuilder.UseSqlServer(configuration.GetConnectionString("DefaultConnection"), x => x.UseNetTopologySuite());
            }
        }

关于c# - .Net Core 2 EF core 连接串问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52659818/

相关文章:

entity-framework - 如何在实体模型中隐藏数据库列?

entity-framework - Linq 到实体 : How to create objects (new Xyz() vs CreateXyz())?

c# - 'LINQ to Entities 不支持 LINQ 表达式节点类型 'Invoke'' 当 lambda 作为参数传递时,但不直接使用时

c# - 在 WebApi 中使用 Unity 解析每个请求的 dbcontext

c# - Mono 网络服务和基本身份验证

c# - 服务堆栈 API - System.InvalidOperationException - ServiceStack.ServiceStackHost.OnEndRequest(IRequest 请求)

entity-framework - 如何阻止EF Core索引所有外键

linq - EF core 2第一次查询慢

c# - EF代码首先不创建数据库

带小数位的 C# 计算