安装依赖包
- Npgsql.EntityFrameworkCore.PostgreSQL
必须
- Npgsql.EntityFrameworkCore.PostgreSQL.Design
数据迁移相关
新建数据库上下文类AppDbContext.cs
注意
当前文件,所在的项目,必须安装上面的 依赖包
// 命名空间
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"
}
}
- Server = localhost: 这指定了数据库服务器的位置。localhost表示数据库服务器运行在本机上。如果数据库服务器运行在网络上的另一台计算机上,这里将会是该计算机的网络地址或主机名。
- Database = TLFDB: 这指定了要连接的数据库的名称,这里是TLFDB。
- Persist Security Info = True: 这个设置控制是否在连接关闭后保留安全信息(如用户名和密码)。通常出于安全考虑,这个值应该设置为False,以防止敏感信息在应用程序中保留过长时间。
- User ID = postgres: 这指定了用于连接到数据库的用户名,这里是postgres。postgres通常是PostgreSQL的默认用户名。
- Password = root: 这指定了用于连接到数据库的密码,这里是root。root通常是PostgreSQL的默认密码,但在实际部署中应该使用更复杂的密码,并定期更换以增强安全性。
- TrustServerCertificate = true: 这个设置用于指定是否信任服务器的SSL证书。当连接到一个使用SSL加密的数据库时,这个设置非常重要。设置为true意味着客户端将信任服务器提供的任何证书,即使它可能不是由受信任的证书颁发机构签发的。这通常用于开发和测试环境,但在生产环境中应该谨慎使用,因为它可能使连接容易受到中间人攻击。
- Port = your_port:Port 指定了数据库服务器监听的端口号。your_port 需要替换为 PostgreSQL 服务器实际使用的端口号,通常是 5432,但也可以配置为其他值。
在Program.cs
源文件中添加数据库上下文配置
注意
: 当前配置必须在 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();