• 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
            });
    }
  • 相关阅读:
    Servlet再度学习
    JSP九大内置对象
    Java I/O学习
    Java内存管理
    数据库面试常问的一些基本概念
    JVM类加载原理学习笔记
    Ajax原理学习
    Java基础之泛型
    Java基础之集合
    java多线程快速入门(二)
  • 原文地址:https://www.cnblogs.com/maanshancss/p/13360416.html
Copyright © 2020-2023  润新知