91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在.NET Core中使用Entity Framework對PostgreSQL進行操作

發布時間:2020-07-10 11:00:44 來源:億速云 閱讀:1573 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關如何在.NET Core中使用Entity Framework對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);
        });
    }
}

以下是顯示的結果:
如何在.NET Core中使用Entity Framework對PostgreSQL進行操作

程序正常運行的話,數據庫中應該可以看到所生成的數據表:
如何在.NET Core中使用Entity Framework對PostgreSQL進行操作

如何在.NET Core中使用Entity Framework對PostgreSQL進行操作

如何在.NET Core中使用Entity Framework對PostgreSQL進行操作

再查看數據表的生成腳本,可以看到字段以及表之間的關系皆通過Entity Framework自動生成。
如何在.NET Core中使用Entity Framework對PostgreSQL進行操作

如何在.NET Core中使用Entity Framework對PostgreSQL進行操作

看完上述內容,你們對如何在.NET Core中使用Entity Framework對PostgreSQL進行操作有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

织金县| 翼城县| 正蓝旗| 嘉义市| 清丰县| 石屏县| 六盘水市| 大理市| 平南县| 漯河市| 克什克腾旗| 石屏县| 衢州市| 格尔木市| 麟游县| 凤冈县| 德兴市| 大城县| 滨州市| 芷江| 五莲县| 大埔区| 霍林郭勒市| 芜湖县| 廉江市| 兴海县| 长治县| 东阳市| 英山县| 湘潭县| 太康县| 永川市| 黄陵县| 阿克| 富平县| 朔州市| 武安市| 柳林县| 黎城县| 工布江达县| 伽师县|