真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在.NETCore中使用EntityFramework對(duì)PostgreSQL進(jìn)行操作

今天就跟大家聊聊有關(guān)如何在.NET Core中使用Entity Framework對(duì)PostgreSQL進(jìn)行操作,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

我們提供的服務(wù)有:成都網(wǎng)站制作、成都做網(wǎng)站、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、龍港ssl等。為上千企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的龍港網(wǎng)站制作公司

Entity Framework在.NET Core中被命名為Entity Framework Core。雖然一般會(huì)用于對(duì)SQL Server數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)操作,但其實(shí)它還支持其它數(shù)據(jù)庫(kù),這里就以PostgreSQL作為例子。

PostgreSQL

PostgreSQL可以選用原生系統(tǒng)與Docker兩種安裝方式。

  • Official

  • Docker

Package

在應(yīng)用程序工程中添加相關(guān)的引用。
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL

Entity

編寫(xiě)兩個(gè)實(shí)體類(lèi),用于映射User表與Order表。

public class User
{
    [Key]
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    public virtual ICollection 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

構(gòu)建必要的DbContext類(lèi),并傳入連接PostgreSQL所需的參數(shù)。

public class PurchaseDbContext : DbContext
{
    public DbSet Users { get; set; }
    public DbSet Orders { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder builder)
    {
        builder.UseNpgsql("Host=localhost;Username=postgres;Password=random;Database=Purchase");
    }
}

Seeder

構(gòu)建一個(gè)用于初始化數(shù)據(jù)庫(kù)的輔助類(lèi)。

public class PurchaseDbContxtSeeder
{
    public static void Seed(PurchaseDbContext context)
    {
        context.Database.EnsureDeleted();
        context.Database.EnsureCreated();

        var users = new List
            {
                new User { Name = "Tom" },
                new User { Name = "Mary" }
            };

        var orders = new List
            {
                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

測(cè)試的程序第一步是調(diào)用生成數(shù)據(jù)的輔助類(lèi),第二步是查詢(xún)數(shù)據(jù)表中的數(shù)據(jù)并在控制臺(tái)中顯示出來(lái)。

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

以下是顯示的結(jié)果:
如何在.NET Core中使用Entity Framework對(duì)PostgreSQL進(jìn)行操作

程序正常運(yùn)行的話(huà),數(shù)據(jù)庫(kù)中應(yīng)該可以看到所生成的數(shù)據(jù)表:
如何在.NET Core中使用Entity Framework對(duì)PostgreSQL進(jìn)行操作

如何在.NET Core中使用Entity Framework對(duì)PostgreSQL進(jìn)行操作

如何在.NET Core中使用Entity Framework對(duì)PostgreSQL進(jìn)行操作

再查看數(shù)據(jù)表的生成腳本,可以看到字段以及表之間的關(guān)系皆通過(guò)Entity Framework自動(dòng)生成。
如何在.NET Core中使用Entity Framework對(duì)PostgreSQL進(jìn)行操作

如何在.NET Core中使用Entity Framework對(duì)PostgreSQL進(jìn)行操作

看完上述內(nèi)容,你們對(duì)如何在.NET Core中使用Entity Framework對(duì)PostgreSQL進(jìn)行操作有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


分享題目:如何在.NETCore中使用EntityFramework對(duì)PostgreSQL進(jìn)行操作
文章源于:http://weahome.cn/article/godhod.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部