How to use Entity Framework to operate PostgreSQL in .NET Core?

青灯夜游
Release: 2018-10-20 17:49:56
forward
6314 people have browsed it

The content of this article is to introduce the method of using Entity Framework to operate PostgreSQL in .NET Core. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

Entity Framework is named Entity Framework Core in .NET Core. Although it is generally used to perform data operations on SQL Server databases, it actually supports other databases. Here we take PostgreSQL as an example.

PostgreSQL

PostgreSQL can be installed in two ways: native system and Docker.

  • Official

  • Docker

Package

In the application project Add relevant citations.
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL

Entity

Write two entity classes for mapping the User table and Order table.

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()}";
    }
}
Copy after login
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}";
    }
}
Copy after login

DbContext

Build the necessary DbContext class and pass in the parameters required to connect to 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");
    }
}
Copy after login

Seeder

Construct an auxiliary class for initializing the database.

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

Test

The first step of the test program is to call the auxiliary class that generates data. The second step is to query the data in the data table and display it in the console.

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);
        });
    }
}
Copy after login

The following is the displayed result:
How to use Entity Framework to operate PostgreSQL in .NET Core?

If the program runs normally, the generated data table should be visible in the database:
How to use Entity Framework to operate PostgreSQL in .NET Core?

How to use Entity Framework to operate PostgreSQL in .NET Core?

How to use Entity Framework to operate PostgreSQL in .NET Core?

Looking at the generation script of the data table, you can see that the relationships between fields and tables are automatically generated through Entity Framework.
How to use Entity Framework to operate PostgreSQL in .NET Core?

How to use Entity Framework to operate PostgreSQL in .NET Core?

The above is the detailed content of How to use Entity Framework to operate PostgreSQL in .NET Core?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:cnblogs.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!