Можно ли установить уникальное ограничение, используя First Framework Framework Code First?
Я хочу использовать ограничение Unique в таблице, и я использую Entity Framework Code-First.
Можно ли добавить уникальное ограничение с помощью EF 6, поскольку я верю в более ранние версии, это было невозможно.
Ответы
Ответ 1
Похоже, что функция уникального ограничения, которая должна была быть выпущена с версией 6, была нажата до 6.1.
С EF 6.1 вы можете определить ограничение, используя атрибут Index, как показано ниже:
[Index("IX_FirstAndSecond", 1, IsUnique = true)]
public int FirstColumn { get; set; }
[Index("IX_FirstAndSecond", 2, IsUnique = true)]
public int SecondColumn { get; set; }
ИЛИ
Вы можете использовать Fluent API, как показано здесь, в MSDN
Ответ 2
Скажем, что вы хотите добавить ограничение Unique только для одного атрибута, вы можете сделать следующее: начиная с EF6.1
[Index(IsUnique = true)]
public string Username { get; set; }
Если у вас несколько полей, связанных с одним и тем же индексом, вы будете использовать
Индексы с несколькими столбцами
Индексы, которые охватывают несколько столбцов, указанным с использованием одного и того же имени в нескольких аннотациях индекса для данная таблица. Когда вы создаете индексы с несколькими столбцами, вам нужно указать порядок столбцов в индексе. Например, следующий код создает индекс с несколькими столбцами по рейтингу и BlogId, называемый IX_BlogAndRating. BlogId - это первый столбец индекса и рейтинга является вторым.
public class Post
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
[Index("IX_BlogIdAndRating", 2)]
public int Rating { get; set; }
[Index("IX_BlogIdAndRating", 1)]
public int BlogId { get; set; }
}
Для получения дополнительной информации см. эту ссылку