本篇文章给大家带来的内容是介绍.net core中使用entity framework操作postgresql的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助。
Entity Framework在.NET Core中被命名为Entity Framework Core。虽然一般会用于对SQL Server数据库进行数据操作,但其实它还支持其它数据库,这里就以PostgreSQL作为例子。
PostgreSQL可以选用原生系统与Docker两种安装方式。
Official
Docker
在应用程序工程中添加相关的引用。dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL
编写两个实体类,用于映射User表与Order表。
public class User
{
[Key]
public int Id { get; set; }
[Required]
public string Name { get; set; }
public virtual ICollection<Order> Orders { get; set; }
public override string ToString()
{
var orders = new StringBuilder();
foreach (var o in Orders)
{
orders.Append(o.ToString());
}
return $"UserId: {Id} Name: {Name} Orders: {orders.ToString()}";
}
}public class Order
{
[Key]
public int Id { get; set; }
[Required]
public int UserId { get; set; }
[Required]
public string Item { get; set; }
[Required]
public string Description { get; set; }
public virtual User User { get; set; }
public override string ToString()
{
return $"OrderId: {Id} Item: {Item} Descriptoin: {Description}";
}
}构建必要的DbContext类,并传入连接PostgreSQL所需的参数。
public class PurchaseDbContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Order> Orders { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder builder)
{
builder.UseNpgsql("Host=localhost;Username=postgres;Password=random;Database=Purchase");
}
}构建一个用于初始化数据库的辅助类。
public class PurchaseDbContxtSeeder
{
public static void Seed(PurchaseDbContext context)
{
context.Database.EnsureDeleted();
context.Database.EnsureCreated();
var users = new List<User>
{
new User { Name = "Tom" },
new User { Name = "Mary" }
};
var orders = new List<Order>
{
new Order { User = users[0], Item = "cloth", Description = "handsome"},
new Order {User = users[1], Item = "hat", Description = "red"},
new Order {User = users[1], Item = "boot", Description = "black"}
};
context.Users.AddRange(users);
context.Orders.AddRange(orders);
context.SaveChanges();
}
}测试的程序第一步是调用生成数据的辅助类,第二步是查询数据表中的数据并在控制台中显示出来。
static void Main(string[] args)
{
using (var context = new PurchaseDbContext())
{
PurchaseDbContxtSeeder.Seed(context);
var users = context.Users.Include(u => u.Orders).ToList();
users.ForEach(u =>
{
System.Console.WriteLine(u);
});
}
}以下是显示的结果:
程序正常运行的话,数据库中应该可以看到所生成的数据表:


再查看数据表的生成脚本,可以看到字段以及表之间的关系皆通过Entity Framework自动生成。

以上就是.NET Core中如何使用Entity Framework操作PostgreSQL?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号