如何使用Fluent配置在Entity Framework 6.2中创建索引。

131

有没有一种使用流畅配置在属性/列上创建索引的方法,而不是使用新的IndexAttribute


5
索引是数据库的概念,而不是实体模型的概念。即使您可以通过属性或流畅API指定索引,它在应用程序中实际上并不会做任何事情。它只是EF在创建数据库时使用的指令。我认为这样的指令应该出现在代码优先迁移中,这完全涉及操作数据库架构。 - JC Ford
11个回答

0

目前,在.net core上,它将是:

[Index(nameof(AdvId), IsUnique = true)]
public class tblAdvertisement
{
    public int Id { get; set; }
    public int AdvId { get; set; }
    public DateTime Created { get; set; }
}

因此,属性集在类上而不是成员上。输出迁移在此之后看起来像这样:

protected override void Up(MigrationBuilder migrationBuilder)
{
    migrationBuilder.CreateIndex(
        name: "IX_Advertisements_AdvId",
        table: "Advertisements",
        column: "AdvId",
        unique: true);
}

protected override void Down(MigrationBuilder migrationBuilder)
{
    migrationBuilder.DropIndex(
        name: "IX_Advertisements_AdvId",
        table: "Advertisements");

}

是的,但问题是如何使用流畅的API(我进行了编辑以使其更清晰。OP提到了“代码优先”与“属性”的区别,但当然属性也是代码优先的)。 - Gert Arnold

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