Heim >Backend-Entwicklung >C#.Net-Tutorial >Wie verwende ich Entity Framework, um PostgreSQL in .NET Core zu betreiben?
Der Inhalt dieses Artikels besteht darin, die Verwendung von Entity Framework zum Betrieb von PostgreSQL in .NET Core vorzustellen. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.
Entity Framework heißt in .NET Core Entity Framework Core. Obwohl es im Allgemeinen zum Ausführen von Datenoperationen in SQL Server-Datenbanken verwendet wird, unterstützt es tatsächlich andere Datenbanken. Hier nehmen wir PostgreSQL als Beispiel.
PostgreSQL kann auf zwei Arten installiert werden: natives System und Docker.
Offizielles
Docker
in Application Engineering Relevant hinzufügen Zitate. dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL
Schreiben Sie zwei Entitätsklassen für die Zuordnung der Benutzertabelle und der Bestelltabelle.
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}"; } }
Erstellen Sie die erforderliche DbContext-Klasse und übergeben Sie die Parameter, die für die Verbindung mit PostgreSQL erforderlich sind.
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"); } }
Konstruiert eine Hilfsklasse zum Initialisieren der Datenbank.
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(); } }
Der erste Schritt des Testprogramms besteht darin, die Hilfsklasse aufzurufen, die Daten generiert. Der zweite Schritt besteht darin, die Daten in der Datentabelle abzufragen und in der Konsole anzuzeigen.
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); }); } }
Die folgenden Ergebnisse werden angezeigt:
Wenn das Programm normal läuft, sollte die generierte Datentabelle in der Datenbank sichtbar sein:
Wenn Sie sich das Generierungsskript der Datentabelle ansehen, können Sie sehen, dass die Beziehungen zwischen Feldern und Tabellen automatisch durch Entity Framework generiert werden.
Das obige ist der detaillierte Inhalt vonWie verwende ich Entity Framework, um PostgreSQL in .NET Core zu betreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!