首页后端开发ASP.NET.NET Core中如何使用Entity Framework操作PostgreSQL?

.NET Core中如何使用Entity Framework操作PostgreSQL?

时间2024-01-31 00:18:02发布访客分类ASP.NET浏览205
导读:收集整理的这篇文章主要介绍了.NET Core中如何使用Entity Framework操作PostgreSQL?,觉得挺不错的,现在分享给大家,也给大家做个参考。本篇文章给大家带来的内容是介绍.NET Core中使用EntITy Fram...
收集整理的这篇文章主要介绍了.NET Core中如何使用Entity Framework操作PostgreSQL?,觉得挺不错的,现在分享给大家,也给大家做个参考。本篇文章给大家带来的内容是介绍.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 ICollectionOrder>
 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 DbSetUser>
 Users {
     get;
     set;
 }
        public DbSetOrder>
 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 ListUser>
            {
                new User {
 Name = "Tom" }
,                new User {
 Name = "mary" }
            }
    ;
            var orders = new ListOrder>
            {
                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中如何使用Entity Framework操作PostgreSQL?的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: C#中二分法查找的入门(代码介绍...下一篇:浅谈.NET Core开发日志中Edge.js...猜你在找的ASP.NET相关文章 C# 一些面试试题的实例教程2022-05-16.NET 6开发TodoList应用之请求日志组件HttpLogging介绍2022-04-16.NET 6中间件Http Logging使用介绍2022-04-16gojs一些实用的高级用法2022-04-16.NET6开发TodoList应用之实现查询排序2022-04-16.NET6开发TodoList应用之实现数据塑形2022-04-16.NET微服务架构CI/CD自动打包镜像2022-04-16Asp.Net Core 使用Monaco Editor 实现代码编辑器功能2022-04-16.NET微服务架构CI/CD自动构建Jenkins+Gitee2022-04-16.Net Core微服务网关Ocelot集成Consul2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: .NET Core中如何使用Entity Framework操作PostgreSQL?
本文地址: https://pptw.com/jishu/593230.html
javascript怎么判断值是否在数组中 CSS选择器有哪些?CSS选择器优先级判定

游客 回复需填写必要信息