Eli*_*eth 25 entity-framework ef-code-first entity-framework-6
我使用EF 6.1.x Code First.
我已经读过EF最新版本不支持带过滤器表达式的索引.
SO上也没有解决方案:
一年后,使用Code First和DbMigrations使过滤器索引工作的工作方式是什么?
CREATE UNIQUE NONCLUSTERED INDEX [IX_DefaultLanguageApplicationId] ON [dbo].[Languages]
(
[IsDefaultLanguage] ASC,
[ApplicationId] ASC,
)
WHERE ([IsDefaultLanguage]=(1))
Run Code Online (Sandbox Code Playgroud)
Col*_*lin 29
在EF 6.1中,使用Code First和DbMigrations进行此工作的工作方式是使用类中的Sql
方法DbMigration
:
public partial class AddIndexes : DbMigration
{
public override void Up()
{
Sql(@"CREATE UNIQUE NONCLUSTERED INDEX
[IX_DefaultLanguageApplicationId] ON [dbo].[Languages]
(
[IsDefaultLanguage] ASC,
[ApplicationId] ASC
)
WHERE ([IsDefaultLanguage]=(1))");
}
public override void Down()
{
DropIndex("dbo.Languages", "IX_DefaultLanguageApplicationId");
}
}
Run Code Online (Sandbox Code Playgroud)
但我意识到你可能会问你是否可以使用6.1中引入的IndexAttribute创建索引,但是使用Filter - 答案是"否"
几乎是一个副本:Entity Framework 6.1 - 使用INCLUDE语句创建索引
归档时间: |
|
查看次数: |
5067 次 |
最近记录: |