PostgreSQL and Blazor .Net Core 3.1



有没有关于如何使用当前版本的Blazor(3.1(和PostgreSQL的资源?

我尝试编写最简单的代码,只是为了查看它是否连接到数据库,但我收到以下错误消息:System.Net.Dns:GetHostByName is not supported on this platform

单击按钮将激活此代码:

async void connection()
{
var connString = "Host=Server1;Username=postgres;Password=pass;Database=BlazorData";
try
{
await using var conn = new NpgsqlConnection(connString);
await conn.OpenAsync();
errcheck = "success";
}
catch (Exception ex)
{
errcheck = ex.Message;
}
}

我解释了如何将它与实体框架一起使用。它可能会对你有所帮助。 在启动.cs中,配置服务方法有这个

services.AddEntityFrameworkNpgsql().AddDbContext<ApplicationDbContext>(options =>
options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));

需要通过 nuget 安装两个包

Npgsql.EntityFrameworkCore.PostgreSQL
Npgsql.EntityFrameworkCore.PostgreSQL.Design

在 appSetting.json 中,请确保您已正确设置连接字符串,下面是我的。如果数据库与数据库位于同一台计算机上,则主机可以是本地主机

"DefaultConnection": "Host=192.168.16.240;Port=5432;Username=postgres;Password=mypassword;Database=mydatabase;"

基本上就是这样。

然后使用表定义应用程序数据库上下文

public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions options) : base(options)
{
}
public DbSet<Room> Rooms { get; set; }
public DbSet<Meal> Meals { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
}

包装内漫画控制台

add-migration initial
update-database

您应该会看到在 PgAdmin 中创建的表。

并像使用常规 C# 列表一样使用数据库集。 并记住在您需要的控制器中注入应用程序数据库上下文。

错误指出您需要自行解析主机名。传递 IP 地址或使用Dns.GetHostEntry

using System.Linq;
using System.Net;
using System.Net.Sockets;
...
async void connection()
{
var host = Dns.GetHostEntry("Server1");
var firstIpV4Address = host.AddressList.First(a => a.AddressFamily == AddressFamily.InterNetwork);
var connString = $"Host={firstIpV4Address};Username=postgres;Password=pass;Database=BlazorData";
try
{
await using var conn = new NpgsqlConnection(connString);
await conn.OpenAsync();
errcheck = "success";
}
catch (Exception ex)
{
errcheck = ex.Message;
}
}

最新更新