使用 EF Code First 從實體類生成資料庫,主鍵 ID 未自動設置為 IDENTITY(1,1)。
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
public class Entity {
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
// 其他屬性...
}
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Entity()
.Property(e => e.ID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
}
IDENTITY(1,1),MySQL 對應 AUTO_INCREMENT,PostgreSQL 對應 SERIAL,EF 會根據 Provider 自動轉換。Add-Migration 重新生成並 Update-Database。DatabaseGeneratedOption.None 並手動賦值。