您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何在.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進行操作有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。