Я новичок в EF6 и Asp.net MVC5.Существует проблема автоматической генерации уникального идентификатора, когда я пытаюсь создать свои сущности, используя первый подход кода.
Рассмотрим сущность, подобную этой:
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int PostId { get; set; }
[Required]
[MaxLength(100), MinLength(5)]
public string Title { get; set; }
public string Content { get; set; }
public string Thumbnail { get; set; }
public string Description { get; set; }
public DateTime DateCreated { get; set; }
Когда я помещаю [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
в PostIdили даже удалить его.Я всегда получал сообщение об ошибке исключения:
«Невозможно вставить значение NULL в столбец« PostId »».«Столбец не допускает пустых значений.INSERT завершается неудачей.
Я не знаю, почему EF6 всегда пытается вставить нулевое значение в столбец Id.
Затем позже я нашел решение.Я изменил
DatabaseGeneratedOption.Identity
на DatabaseGeneratedOption.None
, и проблема была решена.
Однако, похоже, это решение не работает так, как я ожидал.значения, вставленные в столбец, всегда одинаковы.Это не уникально.
С ядром EF все просто, мне не нужно DatabaseGenerated
, просто оставьте это соглашению.Но с EF6 я застрял.Я хочу, чтобы поле Id было уникальным и увеличивалось при каждом его добавлении в базу данных.
Может кто-нибудь помочь мне с этим?