gpt4 book ai didi

entity-framework - 在主键 Entity Framework 6.0 上创建非聚集索引

转载 作者:行者123 更新时间:2023-12-04 07:24:33 24 4
gpt4 key购买 nike

我知道 this ,这表明无法首先通过代码创建具有非聚集索引的主键。现在还是这样吗?

理想情况下,我想通过 EntityTypeConfiguration 指定我的主键 (Guid) 具有非聚集索引,并且还有另一列 (int) 具有聚集索引。

最佳答案

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");
}
}

结果:
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);

关于entity-framework - 在主键 Entity Framework 6.0 上创建非聚集索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31475545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com