Хотя я понимаю, что в Интернете есть много статей на эту тему, я не могу найти решение своей проблемы. Одна из причин - все статьи, которые я обнаружил, не используют асинхронную функцию. Вот моя проблема:
У меня есть сущность:
[Key]
public int Id { get; set; }
[Required]
public string Name { get; set; }
[Url]
public string LogoUrl { get; set; }
[Required]
public string AdministratorIdentityId { get; set; }
public string Verified { get; set; }
public int AddressId { get; set; }
У меня есть следующее в моем контексте БД:
protected override void OnModelCreating(ModelBuilder model)
{
model.Entity<RestaurantEntity>()
.Property(p => p.Id)
.ValueGeneratedNever();
base.OnModelCreating(model);
}
И мой код для сохранения информации в базе данных таков:
try
{
RestaurantEntity dbrestaurant = new RestaurantEntity();
dbrestaurant.Name = restaurantName;
dbrestaurant.AdministratorIdentityId = restaurantAdministrator;
dbrestaurant.Verified = GenerateVerifiedCode();
await _appDbContext.Restaurants.AddAsync(dbrestaurant);
await _appDbContext.SaveChangesAsync();
int newpk = dbrestaurant.Id;
return newpk;
}
Моя проблема в том, что newpk ВСЕГДА 0, а в БД генерирует правильное значение. По какой-то причине ядро EF не получает вставленное значение.
Это информация для получения кода:
Это значение БД: