Я новичок в EF (6.2) и пытаюсь сгенерировать базу данных, используя первый подход кода.
Некоторые из моих сущностей имеют строковое свойство, которое должно быть уникальным, например, имя пользователя или заголовок статьи.
Чтобы обеспечить уникальность, я добавил индекс, который указывает, что столбец должен быть уникальным:
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Blog.Models
{
public class User
{
[Key, Index, Required]
public int Id { get; set; }
[Index(IsUnique = true), Required]
public string Name { get; set; }
[Required]
public string Password { get; set; }
public ICollection<Comment> Comments { get; set; }
}
}
Однако он жалуется, потому что я пытаюсь добавить индекс для столбца строкового типа, в то время как он принимает использование индекса для целочисленного столбца, такого как идентификатор строки.
Я мог бы использовать атрибут Key
, но я уже использую его для определения первичного ключа, и я не хочу, чтобы EF верил, что я хочу, чтобы имя было компонентом составного первичного ключа или не учитывалось это как фактический первичный ключ.
Итак, мой вопрос : Почему я не могу добавить индекс для столбца строкового типа и как я могу обеспечить уникальность (уникальность?) Данного столбца? Спасибо.