AFAIK это невозможно с EntityTypeConfiguration. Однако вы можете сделать это с помощью переходов Code-First. Рабочий пример:
public class Product
{
public Guid Id
{ get; set; }
public int Price
{ get; set; }
}
class AppDbContext : DbContext
{
public DbSet<Product> Products
{ get; set; }
}
public partial class InitialCreate : DbMigration
{
public override void Up()
{
CreateTable(
"dbo.Products",
c => new
{
Id = c.Guid(nullable: false),
Price = c.Int(nullable: false),
})
.PrimaryKey(t => t.Id, clustered: false)
.Index(t => t.Price, clustered: true);
}
public override void Down()
{
DropIndex("dbo.Products", new[] { "Price" });
DropTable("dbo.Products");
}
}
Результат: [? В Entity Framework 6.1, как я могу использовать IndexAttribute определить кластерный индекс]
CREATE TABLE [dbo].[Products] (
[Id] UNIQUEIDENTIFIER NOT NULL,
[Price] INT NOT NULL,
CONSTRAINT [PK_dbo.Products] PRIMARY KEY NONCLUSTERED ([Id] ASC)
);
GO
CREATE CLUSTERED INDEX [IX_Price]
ON [dbo].[Products]([Price] ASC);
Возможный дубликат (http://stackoverflow.com/questions/22813137/in-entity-framework-6-1-how-can-i-use-the-indexattribute-to-define-a-clustered) – Korayem
@Korayem, который говорит, что я использую EF 6.1? – cs0815
вы отметили объект entity-framework-6, поэтому я предположил, что 6.1. Я редактировал заголовок и удалял дубликат запроса. – Korayem