.NET Core中如何使用Entity Framework操作PostgreSQL?

如果下载的源码需要作者授权,请更换源码。本站免费分享资源不会增加授权

本篇文章给大家带来的内容是介绍.NET Core中使用Entity Framework操作PostgreSQL的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助。

Entity Framework在.NET Core中被命名为Entity Framework Core。虽然一般会用于对SQL Server数据库进行数据操作,但其实它还支持其它数据库,这里就以PostgreSQL作为例子。

PostgreSQL

PostgreSQL可以选用原生系统与Docker两种安装方式。

  • Official

  • Docker

Package

在应用程序工程中添加相关的引用。
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL

Entity

编写两个实体类,用于映射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

构建必要的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");     } }

Seeder

构建一个用于初始化数据库的辅助类。

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();     } }

Test

测试的程序第一步是调用生成数据的辅助类,第二步是查询数据表中的数据并在控制台中显示出来。

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);         });     } }

以下是显示的结果:
.NET Core中如何使用Entity Framework操作PostgreSQL?

程序正常运行的话,数据库中应该可以看到所生成的数据表:
.NET Core中如何使用Entity Framework操作PostgreSQL?

.NET Core中如何使用Entity Framework操作PostgreSQL?

.NET Core中如何使用Entity Framework操作PostgreSQL?

再查看数据表的生成脚本,可以看到字段以及表之间的关系皆通过Entity Framework自动生成。
.NET Core中如何使用Entity Framework操作PostgreSQL?

.NET Core中如何使用Entity Framework操作PostgreSQL?

本文由(壳先生)整理自网络,如转载请注明出处:https://www.mrshell.com;
本站发布的内容若侵犯到您的权益,请邮件联系 i@mrshell.com 删除,我们将及时处理!
===========================================================================

1. 本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行测试。
2. 本站资源仅供学习和交流使用,版权归资源原作者所有,请在下载后24小时之内自觉删除。
3. 不得使用于非法商业用途,商用请支持正版!不得违反国家法律,否则后果自负!
4. 若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!

=================================================================

壳先生 » .NET Core中如何使用Entity Framework操作PostgreSQL?