如何在 EF 6 中对字符串类型的字段创建唯一约束?

use*_*459 5 c# asp.net-mvc entity-framework ef-database-first entity-framework-6

首先,我是 MVC 的新手。

我有一个 Project 表,其中包含 ProjectID、ProjectNumber 和 ProjectDescription 字段。ProjectId 是 int 类型的 entityKey,ProjectNumber 需要是唯一约束。

如何在实体框架 6.1.3 中执行此操作?

在我的项目课上我有

        public int ProjectID { get; set; }
        [Index(IsUnique = true)]
        [StringLength(200)]
        public string ProjectNumber { get; set; }
        public string ProjectDescription { get; set; }
Run Code Online (Sandbox Code Playgroud)

当我从模型生成数据库时,该字段在数据库中未设置为唯一。

我究竟做错了什么?

Key*_*TEL 4

基于实体框架代码第一个唯一列中的答案

试试这个代码:

public int ProjectID { get; set; }
[Index("ProjectNumber_Index", IsUnique = true)]
[MaxLength(200)]
public string ProjectNumber { get; set; }
public string ProjectDescription { get; set; }
Run Code Online (Sandbox Code Playgroud)

并确保 SQL Server 中的字符串未设置为 nvarchar(MAX),否则您将看到 Entity Framework Code First 错误。