【发布时间】:2021-09-09 22:05:11
【问题描述】:
我有一个名为 Log 的 Microsoft SQL Server 表,其中存储了大量的日志条目。典型的查询是获取过去几天、几周或几个月的日志行。
所以我了解到,在写入日志条目时的时间戳上的聚集索引将是查询表的巧妙解决方案。简单来说,通过时间戳上的聚集索引,表本身在该列上有点排序,并且查询速度很快。
但我不明白如何使用 Entity Framework Core 代码优先的降序创建聚集索引。
这是我当前的代码,似乎可以正确创建索引,但它使用 ASC 排序。
modelBuilder.Entity<LogEntryEntity>()
.HasKey(c => c.LogEntryId)
.IsClustered(false);
modelBuilder.Entity<LogEntryEntity>()
.HasIndex(c => c.LogTimestamp)
.HasDatabaseName("LogEntryClusteredIndex")
.IsClustered(true);
现在,我看到一些 SO 帖子,据我所知,这是一个已知问题,解决起来并不容易。但我想知道这是否是过时的信息和/或是否有人有任何关于如何将排序更改为 DESC 的提示。如果上面的代码是正确的呢?
我正在使用 Entity Framework Core 6.0.0-preview.7
【问题讨论】:
标签: c# entity-framework-core .net-6.0