Ef Core - 添加唯一索引

时间:2016-09-04 08:58:46

标签: entity-framework ef-code-first asp.net-core

我已添加

 builder.Entity<SiteInformation>().HasIndex(i => i.Url).IsUnique();

到我的应用程序上下文s OnModelCreating`方法,但由于某种原因,索引未添加到数据库中。我从头开始进行迁移,但仍然没有运气。

该列是nvarchar(max)required

我还在OnModelCreating方法中抛出了一个例外,以检查它是否已被调用。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

无法做到那个。您想要定义Url的{​​{1}}列的列必须小于或等于unique constraint。您想在900 bytes上创建唯一约束,您必须将其设置为UrlVARCHAR(900)。这不是NVARCHAR(450)上的问题。这是{{{}}的限制1}}。

假设您要在EF core上创建一个表格,如下所示:

SQL server

然后它会给出MSSQL SERVER,如下所示:

  

警告!最大密钥长度为900字节。该指数   'Unique_Constarin_Email'的最大长度为2000个字节。对于一些   大值的组合,插入/更新操作将失败。