aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Timeline.Tests/Timeline.Tests.csproj6
-rw-r--r--Timeline/Migrations/20191120104512_InitTimeline.Designer.cs270
-rw-r--r--Timeline/Migrations/20191120104512_InitTimeline.cs229
-rw-r--r--Timeline/Migrations/DatabaseContextModelSnapshot.cs147
-rw-r--r--Timeline/Timeline.csproj10
5 files changed, 647 insertions, 15 deletions
diff --git a/Timeline.Tests/Timeline.Tests.csproj b/Timeline.Tests/Timeline.Tests.csproj
index bf7a4fb4..61ccfcc0 100644
--- a/Timeline.Tests/Timeline.Tests.csproj
+++ b/Timeline.Tests/Timeline.Tests.csproj
@@ -14,12 +14,12 @@
<PackageReference Include="FluentAssertions" Version="5.9.0" />
<PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.7" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="3.0.0" />
- <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.6">
+ <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.7">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
- <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.0.0" />
- <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.0.1" />
+ <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
<PackageReference Include="Moq" Version="4.13.1" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
diff --git a/Timeline/Migrations/20191120104512_InitTimeline.Designer.cs b/Timeline/Migrations/20191120104512_InitTimeline.Designer.cs
new file mode 100644
index 00000000..2bff5d68
--- /dev/null
+++ b/Timeline/Migrations/20191120104512_InitTimeline.Designer.cs
@@ -0,0 +1,270 @@
+// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Timeline.Entities;
+
+namespace Timeline.Migrations
+{
+ [DbContext(typeof(DatabaseContext))]
+ [Migration("20191120104512_InitTimeline")]
+ partial class InitTimeline
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "3.0.1")
+ .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+ modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint");
+
+ b.Property<DateTime>("CreateTime")
+ .HasColumnName("create_time")
+ .HasColumnType("datetime(6)");
+
+ b.Property<string>("Description")
+ .HasColumnName("description")
+ .HasColumnType("longtext CHARACTER SET utf8mb4");
+
+ b.Property<string>("Name")
+ .HasColumnName("name")
+ .HasColumnType("longtext CHARACTER SET utf8mb4");
+
+ b.Property<long>("OwnerId")
+ .HasColumnName("owner")
+ .HasColumnType("bigint");
+
+ b.Property<int>("Visibility")
+ .HasColumnName("visibility")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("OwnerId");
+
+ b.ToTable("timelines");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint");
+
+ b.Property<long>("TimelineId")
+ .HasColumnName("timeline")
+ .HasColumnType("bigint");
+
+ b.Property<long>("UserId")
+ .HasColumnName("user")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TimelineId");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("TimelineMembers");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint");
+
+ b.Property<long>("AuthorId")
+ .HasColumnName("author")
+ .HasColumnType("bigint");
+
+ b.Property<string>("Content")
+ .HasColumnName("content")
+ .HasColumnType("longtext CHARACTER SET utf8mb4");
+
+ b.Property<DateTime>("LastUpdated")
+ .HasColumnName("last_updated")
+ .HasColumnType("datetime(6)");
+
+ b.Property<DateTime>("Time")
+ .HasColumnName("time")
+ .HasColumnType("datetime(6)");
+
+ b.Property<long>("TimelineId")
+ .HasColumnName("timeline")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AuthorId");
+
+ b.HasIndex("TimelineId");
+
+ b.ToTable("timeline_posts");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.User", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint");
+
+ b.Property<string>("EncryptedPassword")
+ .IsRequired()
+ .HasColumnName("password")
+ .HasColumnType("longtext CHARACTER SET utf8mb4");
+
+ b.Property<string>("Name")
+ .IsRequired()
+ .HasColumnName("name")
+ .HasColumnType("varchar(26) CHARACTER SET utf8mb4")
+ .HasMaxLength(26);
+
+ b.Property<string>("RoleString")
+ .IsRequired()
+ .HasColumnName("roles")
+ .HasColumnType("longtext CHARACTER SET utf8mb4");
+
+ b.Property<long>("Version")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("version")
+ .HasColumnType("bigint")
+ .HasDefaultValue(0L);
+
+ b.HasKey("Id");
+
+ b.HasIndex("Name")
+ .IsUnique();
+
+ b.ToTable("users");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.UserAvatar", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint");
+
+ b.Property<byte[]>("Data")
+ .HasColumnName("data")
+ .HasColumnType("longblob");
+
+ b.Property<string>("ETag")
+ .HasColumnName("etag")
+ .HasColumnType("varchar(30) CHARACTER SET utf8mb4")
+ .HasMaxLength(30);
+
+ b.Property<DateTime>("LastModified")
+ .HasColumnName("last_modified")
+ .HasColumnType("datetime(6)");
+
+ b.Property<string>("Type")
+ .HasColumnName("type")
+ .HasColumnType("longtext CHARACTER SET utf8mb4");
+
+ b.Property<long>("UserId")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId")
+ .IsUnique();
+
+ b.ToTable("user_avatars");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.UserDetail", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint");
+
+ b.Property<string>("Nickname")
+ .HasColumnName("nickname")
+ .HasColumnType("varchar(26) CHARACTER SET utf8mb4")
+ .HasMaxLength(26);
+
+ b.Property<long>("UserId")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId")
+ .IsUnique();
+
+ b.ToTable("user_details");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+ {
+ b.HasOne("Timeline.Entities.User", "Owner")
+ .WithMany("Timelines")
+ .HasForeignKey("OwnerId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+ {
+ b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+ .WithMany("Members")
+ .HasForeignKey("TimelineId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Timeline.Entities.User", "User")
+ .WithMany("TimelinesJoined")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+ {
+ b.HasOne("Timeline.Entities.User", "Author")
+ .WithMany("TimelinePosts")
+ .HasForeignKey("AuthorId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+ .WithMany("Posts")
+ .HasForeignKey("TimelineId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Timeline.Entities.UserAvatar", b =>
+ {
+ b.HasOne("Timeline.Entities.User", null)
+ .WithOne("Avatar")
+ .HasForeignKey("Timeline.Entities.UserAvatar", "UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Timeline.Entities.UserDetail", b =>
+ {
+ b.HasOne("Timeline.Entities.User", null)
+ .WithOne("Detail")
+ .HasForeignKey("Timeline.Entities.UserDetail", "UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/Timeline/Migrations/20191120104512_InitTimeline.cs b/Timeline/Migrations/20191120104512_InitTimeline.cs
new file mode 100644
index 00000000..a702864f
--- /dev/null
+++ b/Timeline/Migrations/20191120104512_InitTimeline.cs
@@ -0,0 +1,229 @@
+using System;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Timeline.Migrations
+{
+ public partial class InitTimeline : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AlterColumn<string>(
+ name: "roles",
+ table: "users",
+ nullable: false,
+ oldClrType: typeof(string),
+ oldType: "longtext");
+
+ migrationBuilder.AlterColumn<string>(
+ name: "name",
+ table: "users",
+ maxLength: 26,
+ nullable: false,
+ oldClrType: typeof(string),
+ oldType: "varchar(26)",
+ oldMaxLength: 26);
+
+ migrationBuilder.AlterColumn<string>(
+ name: "password",
+ table: "users",
+ nullable: false,
+ oldClrType: typeof(string),
+ oldType: "longtext");
+
+ migrationBuilder.AlterColumn<string>(
+ name: "nickname",
+ table: "user_details",
+ maxLength: 26,
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "varchar(26)",
+ oldMaxLength: 26,
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn<string>(
+ name: "type",
+ table: "user_avatars",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "longtext",
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn<string>(
+ name: "etag",
+ table: "user_avatars",
+ maxLength: 30,
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "varchar(30)",
+ oldMaxLength: 30,
+ oldNullable: true);
+
+ migrationBuilder.CreateTable(
+ name: "timelines",
+ columns: table => new
+ {
+ id = table.Column<long>(nullable: false)
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
+ name = table.Column<string>(nullable: true),
+ description = table.Column<string>(nullable: true),
+ owner = table.Column<long>(nullable: false),
+ visibility = table.Column<int>(nullable: false),
+ create_time = table.Column<DateTime>(nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_timelines", x => x.id);
+ table.ForeignKey(
+ name: "FK_timelines_users_owner",
+ column: x => x.owner,
+ principalTable: "users",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "timeline_posts",
+ columns: table => new
+ {
+ id = table.Column<long>(nullable: false)
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
+ timeline = table.Column<long>(nullable: false),
+ author = table.Column<long>(nullable: false),
+ content = table.Column<string>(nullable: true),
+ time = table.Column<DateTime>(nullable: false),
+ last_updated = table.Column<DateTime>(nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_timeline_posts", x => x.id);
+ table.ForeignKey(
+ name: "FK_timeline_posts_users_author",
+ column: x => x.author,
+ principalTable: "users",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_timeline_posts_timelines_timeline",
+ column: x => x.timeline,
+ principalTable: "timelines",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "TimelineMembers",
+ columns: table => new
+ {
+ id = table.Column<long>(nullable: false)
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
+ user = table.Column<long>(nullable: false),
+ timeline = table.Column<long>(nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_TimelineMembers", x => x.id);
+ table.ForeignKey(
+ name: "FK_TimelineMembers_timelines_timeline",
+ column: x => x.timeline,
+ principalTable: "timelines",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_TimelineMembers_users_user",
+ column: x => x.user,
+ principalTable: "users",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateIndex(
+ name: "IX_timeline_posts_author",
+ table: "timeline_posts",
+ column: "author");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_timeline_posts_timeline",
+ table: "timeline_posts",
+ column: "timeline");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_TimelineMembers_timeline",
+ table: "TimelineMembers",
+ column: "timeline");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_TimelineMembers_user",
+ table: "TimelineMembers",
+ column: "user");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_timelines_owner",
+ table: "timelines",
+ column: "owner");
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "timeline_posts");
+
+ migrationBuilder.DropTable(
+ name: "TimelineMembers");
+
+ migrationBuilder.DropTable(
+ name: "timelines");
+
+ migrationBuilder.AlterColumn<string>(
+ name: "roles",
+ table: "users",
+ type: "longtext",
+ nullable: false,
+ oldClrType: typeof(string));
+
+ migrationBuilder.AlterColumn<string>(
+ name: "name",
+ table: "users",
+ type: "varchar(26)",
+ maxLength: 26,
+ nullable: false,
+ oldClrType: typeof(string),
+ oldMaxLength: 26);
+
+ migrationBuilder.AlterColumn<string>(
+ name: "password",
+ table: "users",
+ type: "longtext",
+ nullable: false,
+ oldClrType: typeof(string));
+
+ migrationBuilder.AlterColumn<string>(
+ name: "nickname",
+ table: "user_details",
+ type: "varchar(26)",
+ maxLength: 26,
+ nullable: true,
+ oldClrType: typeof(string),
+ oldMaxLength: 26,
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn<string>(
+ name: "type",
+ table: "user_avatars",
+ type: "longtext",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn<string>(
+ name: "etag",
+ table: "user_avatars",
+ type: "varchar(30)",
+ maxLength: 30,
+ nullable: true,
+ oldClrType: typeof(string),
+ oldMaxLength: 30,
+ oldNullable: true);
+ }
+ }
+}
diff --git a/Timeline/Migrations/DatabaseContextModelSnapshot.cs b/Timeline/Migrations/DatabaseContextModelSnapshot.cs
index 697fbbec..26be281c 100644
--- a/Timeline/Migrations/DatabaseContextModelSnapshot.cs
+++ b/Timeline/Migrations/DatabaseContextModelSnapshot.cs
@@ -14,9 +14,103 @@ namespace Timeline.Migrations
{
#pragma warning disable 612, 618
modelBuilder
- .HasAnnotation("ProductVersion", "3.0.0")
+ .HasAnnotation("ProductVersion", "3.0.1")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
+ modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint");
+
+ b.Property<DateTime>("CreateTime")
+ .HasColumnName("create_time")
+ .HasColumnType("datetime(6)");
+
+ b.Property<string>("Description")
+ .HasColumnName("description")
+ .HasColumnType("longtext CHARACTER SET utf8mb4");
+
+ b.Property<string>("Name")
+ .HasColumnName("name")
+ .HasColumnType("longtext CHARACTER SET utf8mb4");
+
+ b.Property<long>("OwnerId")
+ .HasColumnName("owner")
+ .HasColumnType("bigint");
+
+ b.Property<int>("Visibility")
+ .HasColumnName("visibility")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("OwnerId");
+
+ b.ToTable("timelines");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint");
+
+ b.Property<long>("TimelineId")
+ .HasColumnName("timeline")
+ .HasColumnType("bigint");
+
+ b.Property<long>("UserId")
+ .HasColumnName("user")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TimelineId");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("TimelineMembers");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint");
+
+ b.Property<long>("AuthorId")
+ .HasColumnName("author")
+ .HasColumnType("bigint");
+
+ b.Property<string>("Content")
+ .HasColumnName("content")
+ .HasColumnType("longtext CHARACTER SET utf8mb4");
+
+ b.Property<DateTime>("LastUpdated")
+ .HasColumnName("last_updated")
+ .HasColumnType("datetime(6)");
+
+ b.Property<DateTime>("Time")
+ .HasColumnName("time")
+ .HasColumnType("datetime(6)");
+
+ b.Property<long>("TimelineId")
+ .HasColumnName("timeline")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AuthorId");
+
+ b.HasIndex("TimelineId");
+
+ b.ToTable("timeline_posts");
+ });
+
modelBuilder.Entity("Timeline.Entities.User", b =>
{
b.Property<long>("Id")
@@ -27,18 +121,18 @@ namespace Timeline.Migrations
b.Property<string>("EncryptedPassword")
.IsRequired()
.HasColumnName("password")
- .HasColumnType("longtext");
+ .HasColumnType("longtext CHARACTER SET utf8mb4");
b.Property<string>("Name")
.IsRequired()
.HasColumnName("name")
- .HasColumnType("varchar(26)")
+ .HasColumnType("varchar(26) CHARACTER SET utf8mb4")
.HasMaxLength(26);
b.Property<string>("RoleString")
.IsRequired()
.HasColumnName("roles")
- .HasColumnType("longtext");
+ .HasColumnType("longtext CHARACTER SET utf8mb4");
b.Property<long>("Version")
.ValueGeneratedOnAdd()
@@ -67,7 +161,7 @@ namespace Timeline.Migrations
b.Property<string>("ETag")
.HasColumnName("etag")
- .HasColumnType("varchar(30)")
+ .HasColumnType("varchar(30) CHARACTER SET utf8mb4")
.HasMaxLength(30);
b.Property<DateTime>("LastModified")
@@ -76,7 +170,7 @@ namespace Timeline.Migrations
b.Property<string>("Type")
.HasColumnName("type")
- .HasColumnType("longtext");
+ .HasColumnType("longtext CHARACTER SET utf8mb4");
b.Property<long>("UserId")
.HasColumnType("bigint");
@@ -98,7 +192,7 @@ namespace Timeline.Migrations
b.Property<string>("Nickname")
.HasColumnName("nickname")
- .HasColumnType("varchar(26)")
+ .HasColumnType("varchar(26) CHARACTER SET utf8mb4")
.HasMaxLength(26);
b.Property<long>("UserId")
@@ -112,6 +206,45 @@ namespace Timeline.Migrations
b.ToTable("user_details");
});
+ modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+ {
+ b.HasOne("Timeline.Entities.User", "Owner")
+ .WithMany("Timelines")
+ .HasForeignKey("OwnerId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+ {
+ b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+ .WithMany("Members")
+ .HasForeignKey("TimelineId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Timeline.Entities.User", "User")
+ .WithMany("TimelinesJoined")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+ {
+ b.HasOne("Timeline.Entities.User", "Author")
+ .WithMany("TimelinePosts")
+ .HasForeignKey("AuthorId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+ .WithMany("Posts")
+ .HasForeignKey("TimelineId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
modelBuilder.Entity("Timeline.Entities.UserAvatar", b =>
{
b.HasOne("Timeline.Entities.User", null)
diff --git a/Timeline/Timeline.csproj b/Timeline/Timeline.csproj
index f3589c04..ab1a0f8d 100644
--- a/Timeline/Timeline.csproj
+++ b/Timeline/Timeline.csproj
@@ -16,17 +16,17 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.0.0" />
- <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.6">
+ <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.7">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
- <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.0.0" />
- <PackageReference Include="Microsoft.EntityFrameworkCore.Analyzers" Version="3.0.0" />
- <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0">
+ <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.0.1" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore.Analyzers" Version="3.0.1" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
- <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="3.0.0-rc1.final" />
+ <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="3.0.0" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql.Design" Version="1.1.2" />
<PackageReference Include="SixLabors.ImageSharp" Version="1.0.0-dev002868" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="5.6.0" />