实体框架6迁移:使用Code First创建包含列的索引

7
我正在寻找一种使用Entity Framework 6.1创建像这样的索引的方法:
 CREATE INDEX [IX_MYINDEX] ON [db].[dbo].[Payments] ([IsDeleted])
 INCLUDE ([Id], [InvoiceId], [OrderId])

我发现其他答案都说这是不可能的,因为包含了“Include”列,但是所有这些答案都是3年前的,所以我想知道是否有新的内容可以实现这个功能。
我们希望尽可能避免在代码中使用真正的SQL,而是更喜欢一个真正的代码优先的解决方案,在其中我们注释模型类。我已经尝试在Google上搜索,并花了一些时间阅读Stackoverflow上的不同答案,但似乎找不到合适的解决方案。请问有人可以指点我吗?
非常感谢。

我有完全相同的问题和偏好(使用数据注释填充所有SQL),想知道是否有更新(2018)。因为我在任何文档中都找不到它(至少目前还没有)。 - JP Hellemons
我也有同样的问题。现在是2019年4月。我正在使用EF6和EF Core(不同的项目)。 - Paul Meems
2个回答

3
不好意思,EF6和EF Core目前仍不支持此功能。

0

不确定是否可以使用数据注释完成此操作,但是您可以创建一个EF迁移

CreateIndex("dbo.Payments", new[] {"IsDeleted", "Id", "InvoiceId", "OrderId"}, name: "IX_MYINDEX");

1
好的,这只是一个可以使用注释创建的多列索引。OP正在请求在“IsDeleted”列上包括(但不索引)其他一些列的索引,这是不同的。 - Ivan Stoev
好的,我误解了问题。 - Georg Patscheider

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接