内容简介:Entity Framwework 6 设置和使用索引,是一个比较 egg 疼的事情,为什么这么说呢?因为Entity Framwework 6的不同版本有不同的设置和使用方法,按照版本来划分,有三种方法:EF6中设置索引比较麻烦,我们需要先进行code first 迁移,然后在迁移类中的在
Entity Framwework 6 设置和使用索引,是一个比较 egg 疼的事情,为什么这么说呢?因为Entity Framwework 6的不同版本有不同的设置和使用方法,按照版本来划分,有三种方法:
- EF6 方法
- EF6.1.x方法
- EF6.2.x方法
EF6
EF6中设置索引比较麻烦,我们需要先进行code first 迁移,然后在迁移类中的 Up 方法中输入如下代码:
//创建索引且值唯一 CreateIndex("dbo.User","Name",unique:true); //创建复合索引,索引名称为 **NameAndIdNumber** CreateIndex("dbo.User",new []{"Name","IdNumber"},name:"NameAndIdNumber");
在 Down 方法中输入如下代码:
DropIndex("dbo.User","Name"); DropIndex("dbo.User",new []{"Name","IdNumber"});
注:EF6中通过迁移类创建的索引无法重命名
EF6.1.x
该版本定义索引的方法如下:
public virtual void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<User>().Property(p => p.Name).HasColumnAnnotation("Index", new IndexAnnotation(new IndexAttribute() { IsUnique=true })); }
上面这段代码的意思是,给User表创建一个唯一索引Name。同样上面的代码也可以单独定义在一个类中:
public class UserMap : EntityTypeConfiguration<User> { public UserMap() { Property(p => p.Name).HasColumnAnnotation("Index", new IndexAnnotation(new IndexAttribute() { IsUnique=true })); } }
我们前面知道在EF6中创建的索引无法重命名,那么在EF6.1.x中创建的索引是否可以重命名吗?答案是当然可以,我们只需在前一类中的 Up 和 Down 方法写入如下代码即可:
public override void Up() { RenameIndex(table:"db.User",name:"Name",newName:"NameIndex"); } public override void Down() { RenameIndex(table:"db.User",name:"NameIndex",newName:"Name"); }
EF6.2.x
在EF6.2.X中创建索引比较简单,只需要调用 HasIndex 方法即可。
public class UserMap : EntityTypeConfiguration<User> { public UserMap() { HasIndex(p=>p.Name); //创建复合索引 HasIndex(p=>new { Name=p.Name, IdNumber=p.IdNumber }); } }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- MySQL索引使用说明(单列索引和多列索引)
- Elasticsearch索引的基本操作(3)-索引的滚动索引
- Coreseek 增量索引模拟实时索引
- Coreseek 增量索引模拟实时索引
- MySQL高效索引之覆盖索引
- MySQL -- 普通索引与唯一索引
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
闪魂FLASH8网站建设实录
马谧铤 / 中国林业 / 2006-7 / 46.00元
《闪魂FLASH8网站建设实录》旨在提供以Flash(Flash 8.0为创作工具)为技术核心的整套互动网站的开发思路,其中包括了网站策划、平面设计、程序设计等实用的互联网应用技术。内容包括Photoshop CS2设计,FIash 8创作和ActionScript应用程序开发的操作流程。在技术学习的过程中.大家还将体会到顶级互动网站设计、网站建设的设计流程和思路。《闪魂FLASH8网站建设实录》......一起来看看 《闪魂FLASH8网站建设实录》 这本书的介绍吧!