我是靠谱客的博主 糟糕御姐,这篇文章主要介绍.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表。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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()}"; } }
登录后复制
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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所需的参数。

复制代码
1
2
3
4
5
6
7
8
9
10
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

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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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

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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
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?的详细内容,更多请关注靠谱客其它相关文章!

最后

以上就是糟糕御姐最近收集整理的关于.NET Core中如何使用Entity Framework操作PostgreSQL?的全部内容,更多相关.NET内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(113)

评论列表共有 0 条评论

立即
投稿
返回
顶部