>  기사  >  백엔드 개발  >  Entity Framework를 사용하여 .NET Core에서 PostgreSQL을 작동하는 방법은 무엇입니까?

Entity Framework를 사용하여 .NET Core에서 PostgreSQL을 작동하는 방법은 무엇입니까?

青灯夜游
青灯夜游앞으로
2018-10-20 17:49:566276검색

이 문서에서는 Entity Framework를 사용하여 .NET Core에서 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 테이블을 매핑하기 위한 두 개의 엔터티 클래스를 작성합니다.

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

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

Seeder

데이터베이스 초기화를 위한 도우미 클래스를 빌드합니다.

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

테스트 프로그램의 첫 번째 단계는 데이터를 생성하는 보조 클래스를 호출하는 것입니다. 두 번째 단계는 데이터 테이블의 데이터를 쿼리하여 콘솔에 표시하는 것입니다.

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에서 PostgreSQL을 작동하는 방법은 무엇입니까?

프로그램이 정상적으로 실행되면 데이터베이스에서 생성된 데이터 테이블을 볼 수 있습니다.
Entity Framework를 사용하여 .NET Core에서 PostgreSQL을 작동하는 방법은 무엇입니까?

Entity Framework를 사용하여 .NET Core에서 PostgreSQL을 작동하는 방법은 무엇입니까?

Entity Framework를 사용하여 .NET Core에서 PostgreSQL을 작동하는 방법은 무엇입니까?

생성된 스크립트를 확인하세요. 데이터 테이블을 다시 보면 필드와 테이블 간의 관계가 Entity Framework를 통해 자동으로 생성되는 것을 볼 수 있습니다.
Entity Framework를 사용하여 .NET Core에서 PostgreSQL을 작동하는 방법은 무엇입니까?

Entity Framework를 사용하여 .NET Core에서 PostgreSQL을 작동하는 방법은 무엇입니까?

위 내용은 Entity Framework를 사용하여 .NET Core에서 PostgreSQL을 작동하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제