3.2 建立模型-索引
阿新 • • 發佈:2020-07-22
建立索引
不能用特注,只能用API模式建立索引
您可以使用 "熟知 API" 按如下方式為單個列指定索引:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>()
.HasIndex(b => b.Url) //建立普通索引
.HasName("Index_Url");//建立索引名稱
}
您還可以為多個列指定索引:
protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Person>()C# .HasIndex(p => new { p.FirstName, p.LastName }); }
還可以指定唯一索引:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>()
.HasIndex(b => b.Url)
.IsUnique();
}
還可以有索引篩選器
MSSQL 可以建立篩選索引或者部分索引,這可以使您只為列的值的一個子集編制索引,從而減少索引的大小並改善效能和磁碟使用情況;
``` C#
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity
.HasIndex(b => b.Url)
.HasFilter("[Url] IS NOT NULL");
}
```
包含列
某些關係型資料庫 MSSQL允許配置一組列,這些列包含在索引中,但不是其“鍵”的一部分,參考連結
protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Post>() .HasIndex(p => p.Url) .IncludeProperties(p => new { p.Title, p.PublishedOn }); }