懒得勤快 3 years ago
parent
commit
e2b6f795eb
1 changed files with 31 additions and 5 deletions
  1. 31 5
      src/Masuit.MyBlogs.Core/Infrastructure/DataContext.cs

+ 31 - 5
src/Masuit.MyBlogs.Core/Infrastructure/DataContext.cs

@@ -1,6 +1,7 @@
 using Masuit.MyBlogs.Core.Models.Entity;
 using Microsoft.EntityFrameworkCore;
 using Microsoft.EntityFrameworkCore.Diagnostics;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
 
 namespace Masuit.MyBlogs.Core.Infrastructure
 {
@@ -37,15 +38,40 @@ namespace Masuit.MyBlogs.Core.Infrastructure
             modelBuilder.Entity<Links>().HasMany(e => e.Loopbacks).WithOne(l => l.Links).IsRequired().HasForeignKey(e => e.LinkId).OnDelete(DeleteBehavior.Cascade);
             modelBuilder.Entity<Advertisement>().HasMany(e => e.ClickRecords).WithOne().HasForeignKey(e => e.AdvertisementId).IsRequired().OnDelete(DeleteBehavior.Cascade);
 
-            if (Database.ProviderName.Contains("MySql"))
+            modelBuilder.Entity<Advertisement>().HasIndex(a => a.Price).HasSortOrder(SortOrder.Descending);
+            modelBuilder.Entity<AdvertisementClickRecord>().HasIndex(a => a.Time).HasSortOrder(SortOrder.Ascending);
+            modelBuilder.Entity<AdvertisementClickRecord>().HasIndex(a => a.AdvertisementId).HasSortOrder(SortOrder.Ascending);
+            modelBuilder.Entity<Category>().HasIndex(a => a.ParentId).HasSortOrder(SortOrder.Ascending);
+            modelBuilder.Entity<Comment>().HasIndex(a => a.PostId).HasSortOrder(SortOrder.Ascending);
+            modelBuilder.Entity<LeaveMessage>().HasIndex(a => a.PostDate).HasSortOrder(SortOrder.Descending);
+            modelBuilder.Entity<LinkLoopback>().HasIndex(a => a.LinkId).HasSortOrder(SortOrder.Ascending);
+            modelBuilder.Entity<Links>().HasIndex(a => a.Recommend).HasSortOrder(SortOrder.Ascending);
+            modelBuilder.Entity<LoginRecord>().HasIndex(a => a.UserInfoId).HasSortOrder(SortOrder.Ascending);
+            modelBuilder.Entity<Menu>().HasIndex(a => a.Sort).HasSortOrder(SortOrder.Ascending);
+            modelBuilder.Entity<Menu>().HasIndex(a => a.ParentId).HasSortOrder(SortOrder.Ascending);
+            modelBuilder.Entity<Notice>().HasIndex(a => a.ModifyDate).HasSortOrder(SortOrder.Descending);
+            modelBuilder.Entity<Post>().HasIndex(a => a.CategoryId).HasSortOrder(SortOrder.Ascending);
+            modelBuilder.Entity<Post>().HasIndex(a => a.ModifyDate).HasSortOrder(SortOrder.Descending);
+            modelBuilder.Entity<Post>().HasIndex(a => a.AverageViewCount).HasSortOrder(SortOrder.Descending);
+            modelBuilder.Entity<Post>().HasIndex(a => a.TotalViewCount).HasSortOrder(SortOrder.Descending);
+            modelBuilder.Entity<PostHistoryVersion>().HasIndex(a => a.CategoryId).HasSortOrder(SortOrder.Ascending);
+            modelBuilder.Entity<PostHistoryVersion>().HasIndex(a => a.PostId).HasSortOrder(SortOrder.Ascending);
+            modelBuilder.Entity<PostMergeRequest>().HasIndex(a => a.PostId).HasSortOrder(SortOrder.Ascending);
+            modelBuilder.Entity<PostVisitRecord>().HasIndex(a => a.PostId).HasSortOrder(SortOrder.Ascending);
+            modelBuilder.Entity<PostVisitRecord>().HasIndex(a => a.Time).HasSortOrder(SortOrder.Descending);
+            modelBuilder.Entity<PostVisitRecordStats>().HasIndex(a => a.Date).HasSortOrder(SortOrder.Descending);
+            modelBuilder.Entity<PostVisitRecordStats>().HasIndex(a => a.PostId).HasSortOrder(SortOrder.Ascending);
+            modelBuilder.Entity<SearchDetails>().HasIndex(a => a.SearchTime).HasSortOrder(SortOrder.Descending);
+
+            if (Database.ProviderName.Contains("Postgre"))
             {
-                modelBuilder.HasDbFunction(typeof(DataContext).GetMethod(nameof(Random))).HasName("RAND");
-                modelBuilder.HasDbFunction(typeof(Guid).GetMethod(nameof(Guid.NewGuid))).HasName("RAND");
+                modelBuilder.HasDbFunction(typeof(DataContext).GetMethod(nameof(Random))).HasName("random");
+                modelBuilder.HasDbFunction(typeof(Guid).GetMethod(nameof(Guid.NewGuid))).HasName("random");
             }
             else
             {
-                modelBuilder.HasDbFunction(typeof(DataContext).GetMethod(nameof(Random))).HasName("random");
-                modelBuilder.HasDbFunction(typeof(Guid).GetMethod(nameof(Guid.NewGuid))).HasName("random");
+                modelBuilder.HasDbFunction(typeof(DataContext).GetMethod(nameof(Random))).HasName("RAND");
+                modelBuilder.HasDbFunction(typeof(Guid).GetMethod(nameof(Guid.NewGuid))).HasName("RAND");
             }
         }