实体框架的“索引”装饰不是创建索引

时间:2017-09-23 00:30:30

标签: c# entity-framework

这是我想要创建的超级简单类。

public class Company
{
    public int ID { get; set; }

    [Column(TypeName = "VARCHAR(254)")]
    [Index]
    public string Name { get; set; }

    [Index]
    public int stupidField { get; set; }
}

我的目标是强制Name独一无二,所以我添加了装饰[Index(IsUnique = true)]。但是没有创建唯一索引,所以我想我会首先尝试解决创建任何索引的简单问题。因为我读here无法为类型为varchar(max)的列创建索引,所以我限制了Name字段的长度。仍然没有运气。我甚至尝试了一些不同的语法来限制字段的长度,但仍然没有索引。

要查看字符串长度以外的其他内容是否正在播放,我创建了整数字段stupidField,但我也无法索引该字段。所以现在我完全没有关于可能出错的想法。请帮帮我!

来自MS SQL Server Management Studio的

Check out this screenshot,显示我的字段正在创建但不是索引。

注意:我确定迁移不是问题。 我在SO上读过的一些人正在更新他们的课程,但由于他们的迁移问题,这些更改没有反映在数据库中。这与此无关。我删除数据库并在每次进行更改时重新创建它。 (我甚至做了一些愚蠢的改变,比如重命名我的字段,只是为了确保我仍然可以影响数据库。)

1 个答案:

答案 0 :(得分:0)

事实证明,我实际上使用的是实体框架核心,而不是实体框架。在Entity Framework Core中,尽管可以使用流畅的API创建索引,但无法使用属性创建索引。 See Microsoft's documentation.