如何使用EF核心和控制台应用程序(.NET Framework 4.7.2)正确存储连接字符串

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

我正在探索ef core,我想创建一个包含两个主要部分的简单项目,console application和网络(asp.net core)。

到目前为止,我仅添加了目标框架为.NET Framework 4.7.2的控制台应用程序。

我的结构看起来像这样:

enter image description here

我添加了数据库项目,该项目将为web .net core(将来)提供连接,现在为控制台应用程序。

我已经成功建立了连接,看起来像这样:

enter image description here

我不喜欢UseSqlServer中的这个硬编码部分。

解决此问题的最佳方法是什么?由于这是将使用连接的控制台应用程序,因此没有appsettings.json,因为它将在.net核心应用程序中。因此,如何从某些文件中读取conn字符串,以避免对其进行硬编码?

c# visual-studio entity-framework-core dbcontext
1个回答
0
投票

仅检查official documentation,所有配置数据都可以并且可能应该来自Configuration,然后此信息可以来自appsettings或其他配置文件,数据库,环境变量,机密等等。

要离开示例,您应该将连接字符串添加到您的应用设置中。

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=ContosoUniversity1;Trusted_Connection=True;MultipleActiveResultSets=true"
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

然后在您的创业公司中:

services.AddDbContext<SchoolContext>(options =>
    options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
© www.soinside.com 2019 - 2024. All rights reserved.