我已添加
builder.Entity<SiteInformation>().HasIndex(i => i.Url).IsUnique();
到我的应用程序上下文s
OnModelCreating`方法,但由于某种原因,索引未添加到数据库中。我从头开始进行迁移,但仍然没有运气。
该列是nvarchar(max)
,required
。
我还在OnModelCreating
方法中抛出了一个例外,以检查它是否已被调用。
有什么想法吗?
答案 0 :(得分:1)
您无法做到那个。您想要定义Url
的{{1}}列的列必须小于或等于unique constraint
。您想在900 bytes
上创建唯一约束,您必须将其设置为Url
或VARCHAR(900)
。这不是NVARCHAR(450)
上的问题。这是{{{}}的限制1}}。
假设您要在EF core
上创建一个表格,如下所示:
SQL server
然后它会给出MSSQL SERVER
,如下所示:
警告!最大密钥长度为900字节。该指数 'Unique_Constarin_Email'的最大长度为2000个字节。对于一些 大值的组合,插入/更新操作将失败。