【问题标题】:Entity Framework's "Index" decoration is not creating an Index实体框架的“索引”装饰没有创建索引
【发布时间】:2017-09-26 05:28:26
【问题描述】:

这是我正在尝试创建的超级简单的类。

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,但我也无法索引该字段。所以现在我完全不知道可能出了什么问题。请帮帮我!

Check out this screenshot 来自 MS SQL Server Management Studio,显示正在创建我的字段,但未创建索引。

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

【问题讨论】:

    标签: c# entity-framework


    【解决方案1】:

    原来我实际上使用的是 Entity Framework Core,而不是 Entity Framework。在 Entity Framework Core 中,不能使用属性创建索引,尽管可以使用 fluent API 创建索引。 See Microsoft's documentation.

    【讨论】:

      猜你喜欢
      • 2019-03-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 2013-05-08
      • 1970-01-01
      • 2015-01-18
      相关资源
      最近更新 更多