3.2 创建模型-索引
创建索引
不能用特注,只能用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
});
}
顶
收藏
关注
评论
作者:王思明
出处:http://www.cnblogs.com/maanshancss/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。所有源码遵循Apache协议,使用必须添加 from maanshancss
出处:http://www.cnblogs.com/maanshancss/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。所有源码遵循Apache协议,使用必须添加 from maanshancss