From d2d4548e5cee28e1b18348bd467977390d284f15 Mon Sep 17 00:00:00 2001 From: hello Date: Thu, 29 Feb 2024 22:35:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B8=AE=E5=8A=A9=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- notes/helloshop/identity.md | 52 ++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/notes/helloshop/identity.md b/notes/helloshop/identity.md index 965f4a6..3b431ee 100644 --- a/notes/helloshop/identity.md +++ b/notes/helloshop/identity.md @@ -6,13 +6,17 @@ https://www.postgresql.org ```shell docker pull postgres -docker run --name postgres -e POSTGRES_PASSWORD=postgres -d -p 5432:5432 postgres +docker run --name postgres -e POSTGRES_PASSWORD=postgres -e TZ=Asia/Shanghai -d -p 5432:5432 postgres ``` ## 使用 PgAdmin 连接 PostgreSQL 数据库 https://www.pgadmin.org +```shell +SHOW timezone; +``` + ## EfCore 使用 PostgreSQL 数据库 ```shell @@ -54,3 +58,49 @@ dotnet ef migrations remove dotnet ef migrations script ``` +## EF Core 列迁移排序 + +默认情况下,在使用迁移创建表时,EF Core 首先为主键列排序,然后为实体类型和从属类型的属性排序,最后为基类型中的属性排序。 但是,你可以指定不同的列顺序: + +```csharp +protected override void OnModelCreating(ModelBuilder modelBuilder) +{ + modelBuilder.Entity() + .Property(b => b.Url) + .HasColumnOrder(2); + + modelBuilder.Entity() + .Property(b => b.Rating) + .HasColumnOrder(3); +} +``` + +## PostgreSQL 数据库驱动时间自动转换 + + +```csharp + +AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true); +AppContext.SetSwitch("Npgsql.DisableDateTimeInfinityConversions", true); + +``` + +## Identity 体系结构说明 + +|实体类型|说明 | +|-----------|-------------------------------------------------------------| +|`User` |表示用户。 | +|`Role` |表示角色。 | +|`UserClaim`|表示用户拥有的声明。 | +|`UserToken`|表示用户的身份验证令牌。 | +|`UserLogin`|将用户与登录名相关联。 | +|`RoleClaim`|表示向角色内的所有用户授予的声明。| +|`UserRole` |关联用户和角色的联接实体。 | + + +- 每个 `User` 可以有多个 `UserClaims` +- 每个 `User` 可以有多个 `UserLogins`。 +- 每个 `User` 可以有多个 `UserTokens`。 +- 每个 `Role` 可以有多个关联的 `RoleClaims`。 +- 每个 `User` 可以有多个关联的 `Roles` +- 每个 `Role` 可以与多个 `Users`关联。 一个多对多关系,联接表由 `UserRole` 表示。