如何轻松地从.NET 8.0中的appsettings.json读取连接字符串?

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

首先,这是正确的 json 吗?我需要指定 ProviderName 吗?

  "ConnectionStrings": {
    "DefaultConnection": {
      "ConnectionString": "Data Source=(local);Initial Catalog=MyDB;Integrated Security=SSPI;",
      "ProviderName": "System.Data.SqlClient"
    }
  }

其次,Visual Studio 创建的 Program.cs 文件似乎没有任何地方可以插入一堆依赖注入类型的代码。那么应该去哪里呢?

第三,微软的Configuration对象示例代码显示了一个名为“GetConnectionString”的方法,但编译器却说该方法不存在。谢谢你,比尔。

我不仅希望得到一段代码,而且还希望知道它的放置位置以及哪些用途是必要的。因为,老实说,我尝试过以各种方式将其拼凑在一起,并阅读了所有 StackOverflow 文章,但没有成功。

asp.net-core dependency-injection database-connection
1个回答
0
投票

首先,这是正确的 json 吗?我需要指定 ProviderName 吗?

无需设置

ProviderName
,正确的连接字符串如下:

  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=xxxx;Trusted_Connection=True;MultipleActiveResultSets=true"
  }

其次,Visual Studio 创建的 Program.cs 文件似乎没有任何地方可以插入一堆依赖注入类型的代码。那么应该去哪里呢?

.net 6之后,program.cs是可以配置服务的文件。

如下所示:

builder.Services.AddDbContext<MyDbContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

第三,微软的配置对象示例代码显示了一个名为“GetConnectionString”的方法,但编译器说该方法不存在。

GetConnectionString 方法在 Microsoft.Extensions.Configuration 命名空间中可用,您可以确保已引用它并使用户已设置好构建器

var builder = WebApplication.CreateBuilder(args)

如果没有,您也可以通过其他方式获取。

enter image description here

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