Я использую EF Core 3.0. У меня есть AppUser, который расширяет Microsoft IdentityUser. Я должен интегрироваться с другим API, что вынуждает меня представлять мой AppUser целочисленным идентификатором. Мой AppUser PK, однако, является строкой. У меня возникла идея, что мой AppUser также будет содержать свойство с именем ShortId, которое будет целым числом, сгенерированным базой данных при вставке. Поэтому объявление моего класса выглядит следующим образом:
public class AppUser : IdentityUser
{
public string Name { get; set; }
public string Surname { get; set; }
...
[Required]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ShortId { get; set; }
}
Однако после добавления миграции и запуска Update-Database появляется ошибка, говорящая о
Could not create IDENTITY attribute on nullable column 'ShortId', table 'AspNetUsers'.
Я четко пометил свой столбец [Обязательный] атрибут, поэтому должно быть ясно, что этот столбец не может быть пустым. Однако оператор вставки SQL по-прежнему выглядит так, что, похоже, выдает ошибку:
CREATE TABLE ... (
...
[ShortId] int NULL IDENTITY,
... )