Я получил решение на http://tracker.firebirdsql.org/browse/DNET-884. Я должен добавить .ForFirebirdUseIdentityColumns()
в OnModelCreating в классе DBContext.Теперь я получаю автоинкремент для обоих типов баз данных.
Теперь это выглядит так:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasAnnotation("ProductVersion", "2.2.4-servicing-10062")
.ForFirebirdUseIdentityColumns()
.ForSqlServerUseIdentityColumns();
modelBuilder.Entity<TblTest>(entity =>
{
entity.HasKey(e => e.Id)
.HasName("PK__tblTest");
entity.Property(e => e.Name).IsUnicode(false);
});
}
После добавления миграции я должен добавить аннотацию в параметре createTable длявторой тип базы данных я использую.В моем случае я добавил миграцию с помощью Firebird и добавил аннотацию для SqlServer:
migrationBuilder.CreateTable(
name: "tblTest",
columns: table => new
{
ID = table.Column<long>(nullable: false)
.Annotation("Fb:ValueGenerationStrategy", FbValueGenerationStrategy.IdentityColumn)
.Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
Number = table.Column<int>(nullable: true),
Name = table.Column<string>(unicode: false, maxLength: 50, nullable: true),
Date = table.Column<DateTime>(nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK__tblTest", x => x.ID);
});