diff options
author | crupest <crupest@outlook.com> | 2020-06-14 00:21:25 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-06-14 00:21:25 +0800 |
commit | 1df83c67e999f7bcf606046c0c687a0be5f8d462 (patch) | |
tree | d073fc9162ab35e1d520f5888c83d4bc98a5ad05 | |
parent | 41210c20cd6fef83530adbdaf5fb97e9f929ab6c (diff) | |
download | timeline-1df83c67e999f7bcf606046c0c687a0be5f8d462.tar.gz timeline-1df83c67e999f7bcf606046c0c687a0be5f8d462.tar.bz2 timeline-1df83c67e999f7bcf606046c0c687a0be5f8d462.zip |
refactor(back): Use a better way to handle unique id in timeline.
-rw-r--r-- | Timeline/Entities/DatabaseContext.cs | 11 | ||||
-rw-r--r-- | Timeline/Entities/TimelineEntity.cs | 4 | ||||
-rw-r--r-- | Timeline/Migrations/20200613161127_AddTimelineUniqueId.Designer.cs (renamed from Timeline/Migrations/20200613135613_AddTimelineUniqueId.Designer.cs) | 9 | ||||
-rw-r--r-- | Timeline/Migrations/20200613161127_AddTimelineUniqueId.cs (renamed from Timeline/Migrations/20200613135613_AddTimelineUniqueId.cs) | 8 | ||||
-rw-r--r-- | Timeline/Migrations/DatabaseContextModelSnapshot.cs | 7 |
5 files changed, 13 insertions, 26 deletions
diff --git a/Timeline/Entities/DatabaseContext.cs b/Timeline/Entities/DatabaseContext.cs index 96e47cc8..af7d2edb 100644 --- a/Timeline/Entities/DatabaseContext.cs +++ b/Timeline/Entities/DatabaseContext.cs @@ -9,15 +9,6 @@ namespace Timeline.Entities public DatabaseContext(DbContextOptions<DatabaseContext> options)
: base(options)
{
- if (Database.IsSqlite())
- {
- var connection = (SqliteConnection)Database.GetDbConnection();
- connection.CreateFunction("timeline_create_guid", () => Guid.NewGuid().ToString());
- }
- else
- {
- throw new InvalidOperationException(Resources.Entities.ExceptionOnlySqliteSupported);
- }
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
@@ -25,7 +16,7 @@ namespace Timeline.Entities modelBuilder.Entity<UserEntity>().Property(e => e.Version).HasDefaultValue(0);
modelBuilder.Entity<UserEntity>().HasIndex(e => e.Username).IsUnique();
modelBuilder.Entity<DataEntity>().HasIndex(e => e.Tag).IsUnique();
- modelBuilder.Entity<TimelineEntity>().Property(e => e.UniqueId).HasDefaultValueSql("timeline_create_guid()");
+ modelBuilder.Entity<TimelineEntity>().Property(e => e.UniqueId).HasDefaultValueSql("randomblob(16)");
}
public DbSet<UserEntity> Users { get; set; } = default!;
diff --git a/Timeline/Entities/TimelineEntity.cs b/Timeline/Entities/TimelineEntity.cs index 1159cbfe..4a4e8502 100644 --- a/Timeline/Entities/TimelineEntity.cs +++ b/Timeline/Entities/TimelineEntity.cs @@ -14,8 +14,8 @@ namespace Timeline.Entities [Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
- [Column("unique_id"), Required]
- public string UniqueId { get; set; } = default!;
+ [Column("unique_id", TypeName = "BLOB"), Required]
+ public Guid UniqueId { get; set; } = default!;
/// <summary>
/// If null, then this timeline is a personal timeline.
diff --git a/Timeline/Migrations/20200613135613_AddTimelineUniqueId.Designer.cs b/Timeline/Migrations/20200613161127_AddTimelineUniqueId.Designer.cs index fb24f8cf..4a8da5fd 100644 --- a/Timeline/Migrations/20200613135613_AddTimelineUniqueId.Designer.cs +++ b/Timeline/Migrations/20200613161127_AddTimelineUniqueId.Designer.cs @@ -9,7 +9,7 @@ using Timeline.Entities; namespace Timeline.Migrations
{
[DbContext(typeof(DatabaseContext))]
- [Migration("20200613135613_AddTimelineUniqueId")]
+ [Migration("20200613161127_AddTimelineUniqueId")]
partial class AddTimelineUniqueId
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -91,12 +91,11 @@ namespace Timeline.Migrations .HasColumnName("owner")
.HasColumnType("INTEGER");
- b.Property<string>("UniqueId")
- .IsRequired()
+ b.Property<Guid>("UniqueId")
.ValueGeneratedOnAdd()
.HasColumnName("unique_id")
- .HasColumnType("TEXT")
- .HasDefaultValueSql("timeline_create_guid()");
+ .HasColumnType("BLOB")
+ .HasDefaultValueSql("randomblob(16)");
b.Property<int>("Visibility")
.HasColumnName("visibility")
diff --git a/Timeline/Migrations/20200613135613_AddTimelineUniqueId.cs b/Timeline/Migrations/20200613161127_AddTimelineUniqueId.cs index fdca85b2..badd33ea 100644 --- a/Timeline/Migrations/20200613135613_AddTimelineUniqueId.cs +++ b/Timeline/Migrations/20200613161127_AddTimelineUniqueId.cs @@ -1,4 +1,5 @@ -using Microsoft.EntityFrameworkCore.Migrations;
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
namespace Timeline.Migrations
{
@@ -12,7 +13,7 @@ ALTER TABLE timelines RENAME TO timelines_backup; CREATE TABLE timelines (
id INTEGER NOT NULL CONSTRAINT PK_timelines PRIMARY KEY AUTOINCREMENT,
- unique_id TEXT NOT NULL DEFAULT (timeline_create_guid()),
+ unique_id BLOB NOT NULL DEFAULT (randomblob(16)),
name TEXT NULL,
description TEXT NULL,
owner INTEGER NOT NULL,
@@ -31,9 +32,6 @@ DROP TABLE timelines_backup; protected override void Down(MigrationBuilder migrationBuilder)
{
- migrationBuilder.DropColumn(
- name: "unique_id",
- table: "timelines");
}
}
}
diff --git a/Timeline/Migrations/DatabaseContextModelSnapshot.cs b/Timeline/Migrations/DatabaseContextModelSnapshot.cs index eb22653f..111ae9c2 100644 --- a/Timeline/Migrations/DatabaseContextModelSnapshot.cs +++ b/Timeline/Migrations/DatabaseContextModelSnapshot.cs @@ -89,12 +89,11 @@ namespace Timeline.Migrations .HasColumnName("owner")
.HasColumnType("INTEGER");
- b.Property<string>("UniqueId")
- .IsRequired()
+ b.Property<Guid>("UniqueId")
.ValueGeneratedOnAdd()
.HasColumnName("unique_id")
- .HasColumnType("TEXT")
- .HasDefaultValueSql("timeline_create_guid()");
+ .HasColumnType("BLOB")
+ .HasDefaultValueSql("randomblob(16)");
b.Property<int>("Visibility")
.HasColumnName("visibility")
|