如何从 NpgSqlConnection 配置 DbContext
How to configure DbContext from a NpgSqlConnection
我在一台有 postgres 服务器的远程机器上有一个 postgres 数据库,我使用 SshClient 连接到它
using (var client = new SshClient("<public ip>", <port>, "<myuser>", "<mypassword>"))
{
client.Connect();
var port = new ForwardedPortLocal("localhost", 5432, "10.0.0.5", 5432);
client.AddForwardedPort(port);
port.Start();
using (var conn = new NpgsqlConnection("Server=localhost;Database=<secret>;Port=5432;User Id=postgres;Password=<secret>;"))
{
conn.Open();
}
port.Stop();
client.Disconnect();
}
我可以从 NpgsqlConnection
对象创建 DbContext 吗?我问是因为我想 运行 脚手架和所有其他常规内容、查询、命令等
简答,没有。您正在混合数据访问技术。当您想要使用 ADO.NET Technology. Entity Framework 时使用类型 NpgsqlConnection
是另一种可用于数据访问的技术,它使用类型 DbContext
。您需要决定使用什么技术。
如果您想生成实体并执行 Linq to SQL 查询,我的建议是使用 Entity Framework。 Entity Framework 提供了可用于构建数据库的工具,Entity Framework 核心工具集的文档可在 here 中找到。安装 Npgsql.EntityFrameworkCore.PostgreSQL
nuget 包后,您可以 运行 以下脚手架命令:
Scaffold-DbContext "Host=my_host;Database=my_db;Username=my_user;Password=my_pw" Npgsql.EntityFrameworkCore.PostgreSQL
希望对您有所帮助
我在一台有 postgres 服务器的远程机器上有一个 postgres 数据库,我使用 SshClient 连接到它
using (var client = new SshClient("<public ip>", <port>, "<myuser>", "<mypassword>"))
{
client.Connect();
var port = new ForwardedPortLocal("localhost", 5432, "10.0.0.5", 5432);
client.AddForwardedPort(port);
port.Start();
using (var conn = new NpgsqlConnection("Server=localhost;Database=<secret>;Port=5432;User Id=postgres;Password=<secret>;"))
{
conn.Open();
}
port.Stop();
client.Disconnect();
}
我可以从 NpgsqlConnection
对象创建 DbContext 吗?我问是因为我想 运行 脚手架和所有其他常规内容、查询、命令等
简答,没有。您正在混合数据访问技术。当您想要使用 ADO.NET Technology. Entity Framework 时使用类型 NpgsqlConnection
是另一种可用于数据访问的技术,它使用类型 DbContext
。您需要决定使用什么技术。
如果您想生成实体并执行 Linq to SQL 查询,我的建议是使用 Entity Framework。 Entity Framework 提供了可用于构建数据库的工具,Entity Framework 核心工具集的文档可在 here 中找到。安装 Npgsql.EntityFrameworkCore.PostgreSQL
nuget 包后,您可以 运行 以下脚手架命令:
Scaffold-DbContext "Host=my_host;Database=my_db;Username=my_user;Password=my_pw" Npgsql.EntityFrameworkCore.PostgreSQL
希望对您有所帮助