.NET Core 6 中的连接字符串

ConnectionString in .NET Core 6

我正在玩 .NET Core 6 Web API。但我现在似乎无法弄清楚连接字符串是如何工作的。

此处注释掉的第一部分工作正常。但是我需要能够将程序扔到不同的系统上并使用 appsettings.json.

更改连接字符串

第二部分是我尝试过的,但没有用。

是我从哪里得到的。

//builder.Services.AddDbContext<TodoContext>(opt =>
//    opt.UseSqlServer(@"Data Source=JOHANDRE\SQL2017; Database=ToDoItems; User=xxx; Password=xxx;"));

builder.Services.AddDbContext<TodoContext>(opt =>
    opt.UseSqlServer(builder.Configuration.GetConnectionString("ToDoItemsDatabase")));

我的appsettings.json:

"ConnectionStrings": {
      "ToDoItemsDatabase": "Server=JOHANDRE\SQL2017; Database=ToDoItems; User=xxx; Password=xxx;"
  },

我想补充一点,它不会抛出错误。它似乎没有找到连接。

问题是您如何从该服务启动 Web API。您正在使用 Process 而未将 ProcessStartInfo.WorkingDirectory 设置为包含 exe 和配置的文件夹,并且启动的进程与父进程共享工作目录,因此将 appsettings.json 移动到父项目文件夹或设置WorkingDirectory匹配包含exe的目录:

toDoTest.StartInfo.UseShellExecute = false;
toDoTest.StartInfo.WorkingDirectory = "C:\Develop\ToDoMVCtutorial\bin\Release\net6.0\publish\";

您也可以尝试 redirecting 您的 Web API 输出来捕获日志。