.NET Core中如何使用Entity Framework操作PostgreSQL?
导读:收集整理的这篇文章主要介绍了.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核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: .NET Core中如何使用Entity Framework操作PostgreSQL?
本文地址: https://pptw.com/jishu/593230.html
