EFCore не может заполнить столбец идентификаторов после вставки. Как обеспечить автоматическое заполнение этого свойства после вставки методом .AddRange ()? Кстати, я использую базу данных MySql.
Мой метод AddRange в репо:
public void AddRange(IQueryable<TEntity> entities)
{
Entities.AddRange(entities);
SaveChanges();
}
Мой класс BaseEntity:
/// <summary>
/// All entities have this values.
/// </summary>
public abstract class BaseEntity
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public DateTime InsertedDate { get; set; }
public DateTime? UpdatedDate { get; set; }
public DateTime? DeletedDate { get; set; }
public bool Active { get; set; }
}
Миграция одного из мои сущности:
migrationBuilder.CreateTable(
name: "HappyHour",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
InsertedDate = table.Column<DateTime>(nullable: false),
UpdatedDate = table.Column<DateTime>(nullable: true),
DeletedDate = table.Column<DateTime>(nullable: true),
Active = table.Column<bool>(nullable: false),
},
constraints: table =>
{
table.PrimaryKey("PK_HappyHour", x => x.Id);
});
Modelsnapshot моей миграции:
modelBuilder.Entity("Entity.HappyHour", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property<bool>("Active")
.HasColumnType("tinyint(1)");
b.Property<DateTime?>("DeletedDate")
.HasColumnType("datetime(6)");
b.Property<DateTime>("InsertedDate")
.HasColumnType("datetime(6)");
b.Property<DateTime?>("UpdatedDate")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.ToTable("HappyHour");
});
Версии пакетов Nuget:
Microsoft.EntityFrameworkCore : 3.1.1,
MySql.Data.EntityFrameworkCore : 8.0.19,
Pomelo.EntityFrameworkCore.MySql : 3.1.0
Это мой первый вопрос. Спасибо за помощь.