HTLF

一步一个脚印,走出高度...

导航

.Net Core 链接postgresql 数据库

安装依赖包

  1. Npgsql.EntityFrameworkCore.PostgreSQL 必须
  2. Npgsql.EntityFrameworkCore.PostgreSQL.Design 数据迁移相关

新建数据库上下文类AppDbContext.cs

  1. 注意 当前文件,所在的项目,必须安装上面的 依赖包
// 命名空间
namespace Service
{
    /// <summary>
    ///  继承 DbContext,需要添加NuGet包
    /// </summary>
    public class AppDbContext: DbContext
    {
        // 需要依赖,注入 上下文关系对象实例
        public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }

        // 判断那些模型需要映射到数据库
        // 注意添加应用,需要引用Microsoft.EntityFrameworkCore;方法
        // 添加模型映射,与表添加映射时,添加复数形式[方法名称s],方法实现中使用的就是用的这个 名称
  
        // 语法: public DbSet<当前实体名称> 方法名称[复数形式] { get; set; }

        // 示例:用户列表
        public DbSet<UserList> GetUsersLists { get; set; }
        
    }
}

appsettings.json 文件中,添加数据库连接字符串

{
  ...
  "ConnectionStrings": { // 数据库链接字符串
    "DefaultConnection": "Server=localhost;Database=DB;Persist Security Info=false;User ID=postgres;Password=root;TrustServerCertificate=false;Port=5432"
  }
}
  • 字段说明
  1. Server = localhost: 这指定了数据库服务器的位置。localhost表示数据库服务器运行在本机上。如果数据库服务器运行在网络上的另一台计算机上,这里将会是该计算机的网络地址或主机名。
  2. Database = TLFDB: 这指定了要连接的数据库的名称,这里是TLFDB。
  3. Persist Security Info = True: 这个设置控制是否在连接关闭后保留安全信息(如用户名和密码)。通常出于安全考虑,这个值应该设置为False,以防止敏感信息在应用程序中保留过长时间。
  4. User ID = postgres: 这指定了用于连接到数据库的用户名,这里是postgres。postgres通常是PostgreSQL的默认用户名。
  5. Password = root: 这指定了用于连接到数据库的密码,这里是root。root通常是PostgreSQL的默认密码,但在实际部署中应该使用更复杂的密码,并定期更换以增强安全性。
  6. TrustServerCertificate = true: 这个设置用于指定是否信任服务器的SSL证书。当连接到一个使用SSL加密的数据库时,这个设置非常重要。设置为true意味着客户端将信任服务器提供的任何证书,即使它可能不是由受信任的证书颁发机构签发的。这通常用于开发和测试环境,但在生产环境中应该谨慎使用,因为它可能使连接容易受到中间人攻击。
  7. Port = your_port:Port 指定了数据库服务器监听的端口号。your_port 需要替换为 PostgreSQL 服务器实际使用的端口号,通常是 5432,但也可以配置为其他值。

Program.cs源文件中添加数据库上下文配置

  1. 注意: 当前配置必须在 var app = builder.Build(); 之前

#region 链接 SQLServe
//builder.Services.AddDbContext<AppDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
#endregion

#region 链接 Postgresql
builder.Services.AddDbContext<AppDbContext>(options => options.UseNpgsql(builder.Configuration.GetConnectionString("DefaultConnection")));
#endregion

// 依赖注入 语法:
// builder.Services.AddTransient<接口名称, 接口实现类>();

// 依赖注入 示例 <用户列表接口,用户列表实现类>
builder.Services.AddTransient<IUserList, IUserListService>();

// 上面的配置,必须在 此行 方法之前
var app = builder.Build();

posted on 2024-07-02 17:15  HTLF  阅读(123)  评论(0编辑  收藏  举报