Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich Entity Framework, um PostgreSQL in .NET Core zu betreiben?

Wie verwende ich Entity Framework, um PostgreSQL in .NET Core zu betreiben?

青灯夜游
青灯夜游nach vorne
2018-10-20 17:49:566275Durchsuche

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

PostgreSQL kann auf zwei Arten installiert werden: natives System und Docker.

  • Offizielles

  • Docker

Paket

in Application Engineering Relevant hinzufügen Zitate.
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL

Entity

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

DbContext

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

Seeder

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

Test

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:
Wie verwende ich Entity Framework, um PostgreSQL in .NET Core zu betreiben?

Wenn das Programm normal läuft, sollte die generierte Datentabelle in der Datenbank sichtbar sein:
Wie verwende ich Entity Framework, um PostgreSQL in .NET Core zu betreiben?

Wie verwende ich Entity Framework, um PostgreSQL in .NET Core zu betreiben?

Wie verwende ich Entity Framework, um PostgreSQL in .NET Core zu betreiben?

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.
Wie verwende ich Entity Framework, um PostgreSQL in .NET Core zu betreiben?

Wie verwende ich Entity Framework, um PostgreSQL in .NET Core zu betreiben?

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen