有没有办法使用实体框架代码优先迁移在 MS SQL Server 数据库中创建索引,如果索引必须是:
?
它必须产生这样的东西:
CREATE NONCLUSTERED INDEX [IX_IndexName] ON [dbo].[TableName]
(
[Column1] ASC,
[Column2] DESC
)
INCLUDE ([Column3], [Column4])
I found 一篇文章 http://romiller.com/2012/01/16/customizing-code-first-migrations-provider/关于这个主题,但它提供了一个相当麻烦的解决方案。自本文撰写以来,可能有些事情已经有所改善。
我也知道能够让我的迁移执行任意 SQL 代码,但我真的希望能够使用某些版本的CreateIndex
方法为我完成所有脏活,而不是我自己编写 SQL 代码。
我刚刚遇到了同样的问题,目前看来它不是迁移 API 的一部分。我的解决方法是执行向上迁移的sql并使用DropIndex方法进行向下迁移。
public override void Up()
{
Sql("CREATE NONCLUSTERED INDEX IX_IndexName ON TableName ([Column1], [Column2] DESC) INCLUDE ([Column3], [Column4])");
}
public override void Down()
{
DropIndex("TableName", "IX_IndexName");
}
它并不漂亮,可以整理成可重用的方法/扩展等,但它可以完成工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)